Create a Builder object for .isa files in arch/SConscript.

Start using SCons File objects to avoid fixed paths in
subordinate SConscripts.

SConscript:
    Push isa_parser stuff (including .isa scanner) down into
    arch/SConscript.
arch/SConscript:
    Create a Builder object for .isa files, including existing scanner.
    Return file objects generated by isa-specific SConscript
    back up to parent.
arch/alpha/SConscript:
arch/mips/SConscript:
arch/sparc/SConscript:
    Convert sources to scons File objects, so file names can be specified
    relative to the current directory.
    Invoke new builder for isa description, and get generated sources from
    there (instead of listing them explicitly).
arch/isa_parser.py:
    Get rid of third argument ("include_path").
    It was a pain to generate this from scons, and it turned out
    it's not needed anyway, since the only included file
    (decoder.hh) will be in the same directory as the sources.

--HG--
extra : convert_revision : 36861bcef36763f229704d8cb7a642b4486a3581
This commit is contained in:
Steve Reinhardt
2006-02-23 14:31:15 -05:00
parent 9949ccf161
commit 99484cfae8
6 changed files with 163 additions and 125 deletions

View File

@@ -43,40 +43,45 @@ Import('env')
###################################################
# Base sources used by all configurations.
arch_base_sources = Split('''
arch/alpha/decoder.cc
arch/alpha/alpha_o3_exec.cc
arch/alpha/fast_cpu_exec.cc
arch/alpha/simple_cpu_exec.cc
arch/alpha/full_cpu_exec.cc
arch/alpha/faults.cc
arch/alpha/isa_traits.cc
base_sources = Split('''
faults.cc
isa_traits.cc
''')
# Full-system sources
arch_full_system_sources = Split('''
arch/alpha/alpha_memory.cc
arch/alpha/arguments.cc
arch/alpha/ev5.cc
arch/alpha/osfpal.cc
arch/alpha/stacktrace.cc
arch/alpha/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/alpha/alpha_common_syscall_emul.cc
arch/alpha/alpha_linux_process.cc
arch/alpha/alpha_tru64_process.cc
syscall_emulation_sources = Split('''
alpha_common_syscall_emul.cc
alpha_linux_process.cc
alpha_tru64_process.cc
''')
# Set up complete list of sources based on configuration.
sources = arch_base_sources
sources = base_sources
if env['FULL_SYSTEM']:
sources += arch_full_system_sources
sources += full_system_sources
else:
sources += arch_syscall_emulation_sources
sources += syscall_emulation_sources
# 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')