summaryrefslogtreecommitdiff
path: root/arch/SConscript
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2006-02-23 17:00:29 -0500
committerSteve Reinhardt <stever@eecs.umich.edu>2006-02-23 17:00:29 -0500
commit51647e7bec8e8607fc5713b4ace2c24ce8a7455a (patch)
tree42c6521921b57bae0f53af430077d66197592758 /arch/SConscript
parent4f831bc5610abfdb94ddfed9af5f1398182ff0b4 (diff)
downloadgem5-51647e7bec8e8607fc5713b4ace2c24ce8a7455a.tar.xz
Enable building only selected CPU models via new scons
CPU_MODELS parameter. For example: scons CPU_MODELS="SimpleCPU,FullCPU" ALPHA_SE/m5.debug Unfortunately the option is not sticky due to a scons bug with saving & restoring ListOption parameters. SConscript: Separate out cpu-model-specific files so they can be conditionally included based on value of new CPU_MODELS parameter. Most of these are now handled in cpu/SConscript, except for FullCPU which is still in this file. arch/SConscript: The set of CPU-model-specific execute files must now be determined from the CPU_MODELS parameter, via the new cpu_models.py file. Also pass the list of configured CPU models to isa_parser.py. arch/isa_parser.py: Move CpuModel definition and objects out to a separate file so they can be shared with scons. Global list of CPU models to generate code for is now controlled by command-line parameters (so we can do only a subset of the available ones). build/SConstruct: Define new CPU_MODELS ListOption. cpu/static_inst.hh: Rename static_inst_impl.hh to static_inst_exec_sigs.hh. --HG-- extra : convert_revision : 163df32a76d4c05900490b2bce4c7962a5e3f614
Diffstat (limited to 'arch/SConscript')
-rw-r--r--arch/SConscript25
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/SConscript b/arch/SConscript
index 51f6cc023..d237b0b1f 100644
--- a/arch/SConscript
+++ b/arch/SConscript
@@ -108,26 +108,27 @@ env.Append(SCANNERS = iscan)
# output from the ISA description (*.isa) files.
#
-# several files are generated from the ISA description
-isa_desc_gen_files = Split('''
- decoder.cc
- alpha_o3_exec.cc
- fast_cpu_exec.cc
- simple_cpu_exec.cc
- full_cpu_exec.cc
- decoder.hh
- ''')
-
# Convert to File node to fix path
isa_parser = File('isa_parser.py')
+cpu_models_file = File('#m5/cpu/cpu_models.py')
+
+# This sucks in the defintions of the CpuModel objects.
+execfile(cpu_models_file.srcnode().abspath)
+
+# Several files are generated from the ISA description.
+# We always get the basic decoder and header file.
+isa_desc_gen_files = Split('decoder.cc decoder.hh')
+# We also get an execute file for each selected CPU model.
+isa_desc_gen_files += [CpuModel.dict[cpu].filename
+ for cpu in env['CPU_MODELS']]
# The emitter patches up the sources & targets to include the
# autogenerated files as targets and isa parser itself as a source.
def isa_desc_emitter(target, source, env):
- return (isa_desc_gen_files, [isa_parser] + source)
+ return (isa_desc_gen_files, [isa_parser, cpu_models_file] + source)
# Pieces are in place, so create the builder.
-isa_desc_builder = Builder(action='${SOURCES[0]} ${SOURCES[1]} $TARGET.dir',
+isa_desc_builder = Builder(action='$SOURCES $TARGET.dir $CPU_MODELS',
source_scanner = iscan,
emitter = isa_desc_emitter)