Create a Builder object for .isa files in arch/SConscript.
[gem5.git] / arch / sparc / SConscript
index d8a3749a149888ef9002069d87246b77cb71a9fa..fea31fd5d20a21102aa293d208947e506e2a6f03 100644 (file)
@@ -40,43 +40,43 @@ Import('env')
 ###################################################
 
 # Base sources used by all configurations.
-arch_base_sources = Split('''
-       arch/sparc/decoder.cc
-        arch/sparc/alpha_o3_exec.cc
-       arch/sparc/fast_cpu_exec.cc
-       arch/sparc/simple_cpu_exec.cc
-       arch/sparc/full_cpu_exec.cc
-       arch/sparc/faults.cc
-       arch/sparc/isa_traits.cc
+base_sources = Split('''
+       faults.cc
+       isa_traits.cc
        ''')
 
 # Full-system sources
-arch_full_system_sources = Split('''
-       arch/sparc/alpha_memory.cc
-       arch/sparc/arguments.cc
-       arch/sparc/ev5.cc
-       arch/sparc/osfpal.cc
-       arch/sparc/stacktrace.cc
-       arch/sparc/vtophys.cc
+full_system_sources = Split('''
+       alpha_memory.cc
+       arguments.cc
+       ev5.cc
+       osfpal.cc
+       stacktrace.cc
+       vtophys.cc
        ''')
 
 # Syscall emulation (non-full-system) sources
-arch_syscall_emulation_sources = Split('''
-       arch/sparc/alpha_common_syscall_emul.cc
-       arch/sparc/alpha_linux_process.cc
-       arch/sparc/alpha_tru64_process.cc
+syscall_emulation_sources = Split('''
+       alpha_common_syscall_emul.cc
+       alpha_linux_process.cc
+       alpha_tru64_process.cc
        ''')
 
-sources = arch_base_sources
+sources = base_sources
 
 if env['FULL_SYSTEM']:
-    sources += arch_full_system_sources
-    if env['ALPHA_TLASER']:
-        sources += arch_turbolaser_sources
+    sources += full_system_sources
 else:
-    sources += arch_syscall_emulation_sources
+    sources += syscall_emulation_sources
 
-for opt in env.ExportOptions:
-    env.ConfigFile(opt)
+# 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]
+
+# 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
 
 Return('sources')