Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
[gem5.git] / SConscript
index 6d7ed172fb9c7a48786b30c6318f4eeb13844df3..525a948180b53d390ba0578c29d2ee7493e7955e 100644 (file)
@@ -28,6 +28,7 @@
 
 import os
 import sys
+from os.path import isdir
 
 # This file defines how to build a particular configuration of M5
 # based on variable settings in the 'env' build environment.
@@ -51,6 +52,7 @@ base_sources = Split('''
        arch/alpha/full_cpu_exec.cc
        arch/alpha/faults.cc
        arch/alpha/isa_traits.cc
+        arch/alpha/ooo_cpu_exec.cc
 
        base/circlebuf.cc
        base/copyright.cc
@@ -64,6 +66,7 @@ base_sources = Split('''
        base/intmath.cc
        base/match.cc
        base/misc.cc
+       base/output.cc
        base/pollevent.cc
        base/python.cc
        base/range.cc
@@ -113,6 +116,7 @@ base_sources = Split('''
         cpu/beta_cpu/rename.cc
         cpu/beta_cpu/rename_map.cc
         cpu/beta_cpu/rob.cc
+        cpu/beta_cpu/sat_counter.cc
         cpu/beta_cpu/store_set.cc
         cpu/beta_cpu/tournament_pred.cc
        cpu/fast_cpu/fast_cpu.cc
@@ -135,30 +139,34 @@ base_sources = Split('''
        cpu/full_cpu/ls_queue.cc
        cpu/full_cpu/machine_queue.cc
         cpu/full_cpu/pc_sample_profile.cc
-       cpu/full_cpu/pipetrace.cc
-       cpu/full_cpu/readyq.cc
-       cpu/full_cpu/reg_info.cc
-       cpu/full_cpu/rob_station.cc
-       cpu/full_cpu/spec_memory.cc
-       cpu/full_cpu/spec_state.cc
-       cpu/full_cpu/storebuffer.cc
-       cpu/full_cpu/writeback.cc
-       cpu/full_cpu/iq/iq_station.cc
-       cpu/full_cpu/iq/iqueue.cc
-       cpu/full_cpu/iq/segmented/chain_info.cc
-       cpu/full_cpu/iq/segmented/chain_wire.cc
-       cpu/full_cpu/iq/segmented/iq_seg.cc
-       cpu/full_cpu/iq/segmented/iq_segmented.cc
-       cpu/full_cpu/iq/segmented/seg_chain.cc
-       cpu/full_cpu/iq/seznec/iq_seznec.cc
-       cpu/full_cpu/iq/standard/iq_standard.cc
-       cpu/sampling_cpu/sampling_cpu.cc
-       cpu/simple_cpu/simple_cpu.cc
-       cpu/inorder_cpu/inorder_cpu.cc
-       cpu/trace/reader/mem_trace_reader.cc
-       cpu/trace/reader/ibm_reader.cc
-       cpu/trace/reader/itx_reader.cc
-       cpu/trace/reader/m5_reader.cc
+        cpu/full_cpu/pipetrace.cc
+        cpu/full_cpu/readyq.cc
+        cpu/full_cpu/reg_info.cc
+        cpu/full_cpu/rob_station.cc
+        cpu/full_cpu/spec_memory.cc
+        cpu/full_cpu/spec_state.cc
+        cpu/full_cpu/storebuffer.cc
+        cpu/full_cpu/writeback.cc
+        cpu/full_cpu/iq/iq_station.cc
+        cpu/full_cpu/iq/iqueue.cc
+        cpu/full_cpu/iq/segmented/chain_info.cc
+        cpu/full_cpu/iq/segmented/chain_wire.cc
+        cpu/full_cpu/iq/segmented/iq_seg.cc
+        cpu/full_cpu/iq/segmented/iq_segmented.cc
+        cpu/full_cpu/iq/segmented/seg_chain.cc
+        cpu/full_cpu/iq/seznec/iq_seznec.cc
+        cpu/full_cpu/iq/standard/iq_standard.cc
+        cpu/inorder_cpu/inorder_cpu.cc
+        cpu/ooo_cpu/ea_list.cc
+        cpu/ooo_cpu/ooo_cpu.cc
+        cpu/ooo_cpu/ooo_dyn_inst.cc
+        cpu/ooo_cpu/ooo_sim_obj.cc
+        cpu/sampling_cpu/sampling_cpu.cc
+        cpu/simple_cpu/simple_cpu.cc
+        cpu/trace/reader/mem_trace_reader.cc
+        cpu/trace/reader/ibm_reader.cc
+        cpu/trace/reader/itx_reader.cc
+        cpu/trace/reader/m5_reader.cc
 
        mem/base_hier.cc
        mem/base_mem.cc
@@ -186,6 +194,11 @@ base_sources = Split('''
        mem/cache/miss/miss_queue.cc
        mem/cache/miss/mshr.cc
        mem/cache/miss/mshr_queue.cc
+        mem/cache/prefetch/base_prefetcher.cc
+        mem/cache/prefetch/ghb_prefetcher.cc
+        mem/cache/prefetch/prefetcher.cc
+        mem/cache/prefetch/stride_prefetcher.cc
+        mem/cache/prefetch/tagged_prefetcher.cc
        mem/cache/tags/base_tags.cc
        mem/cache/tags/cache_tags.cc
        mem/cache/tags/fa_lru.cc
@@ -205,6 +218,9 @@ base_sources = Split('''
        mem/trace/mem_trace_writer.cc
        mem/trace/m5_writer.cc
 
+        python/pyconfig.cc
+        python/embedded_py.cc
+
        sim/builder.cc
        sim/configfile.cc
        sim/debug.cc
@@ -221,8 +237,6 @@ base_sources = Split('''
        sim/stat_control.cc
        sim/trace_context.cc
        sim/universe.cc
-        sim/pyconfig/pyconfig.cc
-        sim/pyconfig/embedded_py.cc
         ''')
 
 # MySql sources
@@ -358,18 +372,17 @@ else:
 
 extra_libraries = []
 env.Append(LIBS=['z'])
-if env['USE_MYSQL']:
+if isdir('/usr/lib64/mysql') or isdir('/usr/lib/mysql') or \
+   isdir('/usr/local/lib/mysql'):
+    print 'Compiling with MySQL support!'
+    env.Append(LIBPATH=['/usr/lib64/mysql', '/usr/local/lib/mysql/',
+                        '/usr/lib/mysql'])
+    env.Append(CPPPATH=['/usr/local/include/mysql', '/usr/include/mysql'])
     sources += mysql_sources
     env.Append(CPPDEFINES = 'USE_MYSQL')
     env.Append(CPPDEFINES = 'STATS_BINNING')
-    env.Append(CPPPATH=['/usr/local/include/mysql', '/usr/include/mysql'])
-    if os.path.isdir('/usr/lib64'):
-        env.Append(LIBPATH=['/usr/lib64/mysql'])
-    else:
-        env.Append(LIBPATH=['/usr/lib/mysql/'])
     env.Append(LIBS=['mysqlclient'])
 
-
 ###################################################
 #
 # Special build rules.
@@ -389,7 +402,8 @@ env.Command(Split('''arch/alpha/decoder.cc
                     arch/alpha/fast_cpu_exec.cc
                      arch/alpha/simple_cpu_exec.cc
                      arch/alpha/inorder_cpu_exec.cc
-                     arch/alpha/full_cpu_exec.cc'''),
+                     arch/alpha/full_cpu_exec.cc
+                     arch/alpha/ooo_cpu_exec.cc'''),
             Split('''arch/alpha/isa_desc
                     arch/isa_parser.py'''),
             '$SRCDIR/arch/isa_parser.py $SOURCE $TARGET.dir arch/alpha')
@@ -399,8 +413,8 @@ env.Command(Split('''arch/alpha/decoder.cc
 # SConscript-local is the per-config build, which just copies some
 # header files into a place where they can be found.
 SConscript('libelf/SConscript-local', exports = 'env', duplicate=0)
-SConscript('sim/pyconfig/SConscript', exports = ['env'], duplicate=0)
-
+SConscript('python/SConscript', exports = ['env'], duplicate=0)
+SConscript('simobj/SConscript', exports = 'env', duplicate=0)
 
 # This function adds the specified sources to the given build
 # environment, and returns a list of all the corresponding SCons
@@ -432,7 +446,7 @@ env.Append(CPPPATH='.')
 
 # Debug binary
 debug = env.Copy(OBJSUFFIX='.do')
-debug.Append(CCFLAGS=Split('-g -gstabs+ -O0 -lefence'))
+debug.Append(CCFLAGS=Split('-g -gstabs+ -O0'))
 debug.Append(CPPDEFINES='DEBUG')
 debug.Program(target = 'm5.debug', source = make_objs(sources, debug))