Turn Interrupts objects into SimObjects. Also, move local APIC state into x86's Inter...
[gem5.git] / src / arch / sparc / SConscript
index a0a6112de02016a4fd732f287e4fb6998e0dd721..126587835944149431c850e4b052f2defc9b541e 100644 (file)
 # Authors: Gabe Black
 #          Steve Reinhardt
 
-import os
-import sys
-from os.path import isdir
+Import('*')
 
-# Import build environment variable from SConstruct.
-Import('env')
+if env['TARGET_ISA'] == 'sparc':
+# Workaround for bug in SCons version > 0.97d20071212
+# Scons bug id: 2006 M5 Bug id: 308 
+    Dir('isa/formats')
+    Dir('isa/formats/mem')
+    Source('asi.cc')
+    Source('faults.cc')
+    Source('floatregfile.cc')
+    Source('intregfile.cc')
+    Source('miscregfile.cc')
+    Source('pagetable.cc')
+    Source('regfile.cc')
+    Source('remote_gdb.cc')
+    Source('tlb.cc')
+    Source('utility.cc')
 
-###################################################
-#
-# Define needed sources.
-#
-###################################################
-
-# Base sources used by all configurations.
-base_sources = Split('''
-       asi.cc
-       faults.cc
-       floatregfile.cc
-       intregfile.cc
-       miscregfile.cc
-       regfile.cc
-       ''')
-
-# Full-system sources
-full_system_sources = Split('''
-       arguments.cc
-       remote_gdb.cc
-        pagetable.cc
-       stacktrace.cc
-       system.cc
-       tlb.cc
-       vtophys.cc
-       ''')
-
-# Syscall emulation (non-full-system) sources
-syscall_emulation_sources = Split('''
-       linux/linux.cc
-       linux/process.cc
-       process.cc
-       solaris/process.cc
-       solaris/solaris.cc
-       ''')
+    SimObject('SparcTLB.py')
+    TraceFlag('Sparc')
 
-sources = base_sources
+    if env['FULL_SYSTEM']:
+        SimObject('SparcSystem.py')
+        SimObject('SparcInterrupts.py')
 
-if env['FULL_SYSTEM']:
-    sources += full_system_sources
-else:
-    sources += syscall_emulation_sources
+        Source('interrupts.cc')
+        Source('stacktrace.cc')
+        Source('system.cc')
+        Source('ua2005.cc')
+        Source('vtophys.cc')
+    else:
+        Source('process.cc')
 
-# Convert file names to SCons File objects.  This takes care of the
-# path relative to the top of the directory tree.
-sources = [File(s) for s in sources]
+        Source('linux/linux.cc')
+        Source('linux/process.cc')
+        Source('linux/syscalls.cc')
 
-# Add in files generated by the ISA description.
-isa_desc_files = env.ISADesc('isa/main.isa')
-# Only non-header files need to be compiled.
-isa_desc_sources = [f for f in isa_desc_files if not f.path.endswith('.hh')]
-sources += isa_desc_sources
+        Source('solaris/process.cc')
+        Source('solaris/solaris.cc')
 
-Return('sources')
+    # Add in files generated by the ISA description.
+    isa_desc_files = env.ISADesc('isa/main.isa')
+    # Only non-header files need to be compiled.
+    for f in isa_desc_files:
+        if not f.path.endswith('.hh'):
+            Source(f)