Fixup interrupting of the ethernet device.
[gem5.git] / SConscript
index 7ff62edec3403da0c279986d5bd01404aafe0b27..f22c85059f66692330f70768370231eed97fa6c2 100644 (file)
@@ -59,6 +59,7 @@ base_sources = Split('''
        base/hybrid_pred.cc
        base/inifile.cc
        base/intmath.cc
+       base/match.cc
        base/misc.cc
        base/pollevent.cc
        base/python.cc
@@ -189,11 +190,44 @@ base_sources = Split('''
        sim/sim_object.cc
        sim/stat_context.cc
        sim/stat_control.cc
-       sim/sw_context.cc
        sim/trace_context.cc
        sim/universe.cc
+        sim/pyconfig/pyconfig.cc
+        sim/pyconfig/code.cc
         ''')
 
+base_obj_desc_files = Split('''
+        cpu/full_cpu/iq/segmented/SegmentedIQ.od
+        cpu/full_cpu/iq/seznec/SeznecIQ.od
+        cpu/full_cpu/iq/standard/StandardIQ.od
+        cpu/full_cpu/iq/BaseIQ.od
+        cpu/full_cpu/BranchPred.od
+        cpu/full_cpu/FUDesc.od
+        cpu/full_cpu/FullCPU.od
+        cpu/full_cpu/FuncUnitPool.od
+        cpu/full_cpu/OpDesc.od
+        cpu/full_cpu/PipeTrace.od
+        cpu/sampling_cpu/SamplingCPU.od
+        cpu/simple_cpu/SimpleCPU.od
+        cpu/BaseCPU.od
+        cpu/IntrControl.od
+        mem/bus/Bus.od
+        mem/bus/BusBridge.od
+        mem/cache/coherence/CoherenceProtocol.od
+        mem/cache/tags/repl/GenRepl.od
+        mem/cache/tags/repl/Repl.od
+        mem/cache/BaseCache.od
+        mem/functional_mem/FunctionalMemory.od
+        mem/functional_mem/MainMemory.od
+        mem/functional_mem/MemoryController.od
+        mem/functional_mem/PhysicalMemory.od
+        mem/timing_mem/BaseMemory.od
+        mem/BaseHier.od
+        mem/BaseMem.od
+        mem/HierParams.od
+        ''')
+
+
 # MySql sources
 mysql_sources = Split('''
        base/mysql.cc
@@ -253,11 +287,13 @@ full_system_sources = Split('''
        dev/tsunami_pchip.cc
        dev/uart.cc
 
+       kern/kernel_binning.cc
        kern/kernel_stats.cc
        kern/system_events.cc
        kern/linux/linux_events.cc
        kern/linux/linux_syscalls.cc
        kern/linux/linux_system.cc
+       kern/linux/printk.cc
        kern/tru64/dump_mbuf.cc
        kern/tru64/printf.cc
        kern/tru64/tru64_events.cc
@@ -271,6 +307,44 @@ full_system_sources = Split('''
        sim/system.cc
         ''')
 
+full_system_obj_desc_files = Split('''
+        arch/alpha/AlphaDTB.od
+        arch/alpha/AlphaITB.od
+        arch/alpha/AlphaTLB.od
+        dev/AlphaConsole.od
+        dev/ConsoleListener.od
+        dev/CowDiskImage.od
+        dev/DiskImage.od
+        dev/DmaDevice.od
+        dev/DmaEngine.od
+        dev/EtherBus.od
+        dev/EtherDev.od
+        dev/EtherDevInt.od
+        dev/EtherDump.od
+        dev/EtherInt.od
+        dev/EtherLink.od
+        dev/EtherTap.od
+        dev/PioDevice.od
+        dev/RawDiskImage.od
+        dev/ScsiController.od
+        dev/ScsiDevice.od
+        dev/ScsiDisk.od
+        dev/SimConsole.od
+        dev/SimpleDisk.od
+        dev/TlaserClock.od
+        dev/TlaserIpi.od
+        dev/TlaserMBox.od
+        dev/TlaserMC146818.od
+        dev/TlaserNode.od
+        dev/TlaserPciDev.od
+        dev/TlaserPcia.od
+        dev/TlaserSerial.od
+        dev/TlaserUart.od
+        dev/Turbolaser.od
+        kern/tru64/Tru64System.od
+        sim/System.od
+       ''')
+
 # Syscall emulation (non-full-system) sources
 syscall_emulation_sources = Split('''
        arch/alpha/alpha_common_syscall_emul.cc
@@ -285,16 +359,35 @@ syscall_emulation_sources = Split('''
        sim/syscall_emul.cc
         ''')
 
+syscall_emulation_obj_desc_files = Split('''
+        cpu/memtest/MemTest.od
+        eio/EioProcess.od
+        sim/LiveProcess.od
+        sim/Process.od
+       ''')
+
 # Set up complete list of sources based on configuration.
 sources = base_sources
+obj_desc_files = base_obj_desc_files
 
 if env['FULL_SYSTEM']:
     sources += full_system_sources
+    obj_desc_files += full_system_obj_desc_files
 else:
     sources += syscall_emulation_sources
+    obj_desc_files += syscall_emulation_obj_desc_files
 
+extra_libraries = []
 if env['USE_MYSQL']:
     sources += mysql_sources
+    env.Append(CPPDEFINES = 'USE_MYSQL')
+    env.Append(CPPPATH=['/usr/local/include/mysql', '/usr/include/mysql'])
+    env.Append(LIBS=['z'])
+    if sys.platform.lower().startswith('linux'):
+        extra_libraries.append('/usr/lib/mysql/libmysqlclient.a')
+    else:
+        env.Append(LIBS=['mysql'])
+        env.Append(LIBPATH=['/usr/local/lib/mysql/'])
 
 ###################################################
 #
@@ -314,7 +407,8 @@ env.Command(Split('''arch/alpha/decoder.cc
                     arch/alpha/fast_cpu_exec.cc
                      arch/alpha/simple_cpu_exec.cc
                      arch/alpha/full_cpu_exec.cc'''),
-            'arch/alpha/isa_desc',
+            Split('''arch/alpha/isa_desc
+                    arch/isa_parser.py'''),
             '$SRCDIR/arch/isa_parser.py $SOURCE $TARGET.dir arch/alpha')
 
 
@@ -334,6 +428,15 @@ def link_targetarch(target, source, env):
 env.Command('targetarch', None, link_targetarch)
 
 
+# libelf build is described in its own SConscript file.
+# 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', 'obj_desc_files'],
+           duplicate=0)
+
+
 # This function adds the specified sources to the given build
 # environment, and returns a list of all the corresponding SCons
 # Object nodes (including an extra one for date.cc).  We explicitly
@@ -348,6 +451,7 @@ def make_objs(sources, env):
     date_obj = env.Object('base/date.cc')
     env.Depends(date_obj, objs)
     objs.append(date_obj)
+    objs.extend(extra_libraries)
     return objs
 
 ###################################################