diff --git a/SConstruct b/SConstruct index d23541413d..3e2df39cfb 100755 --- a/SConstruct +++ b/SConstruct @@ -122,15 +122,20 @@ AddOption('--with-systemc-tests', action='store_true', from gem5_scons import Transform, error, warning, summarize_warnings from gem5_scons import TempFileSpawn, parse_build_path, EnvDefaults +from gem5_scons import MakeAction, MakeActionTool import gem5_scons +Export('MakeAction') + ######################################################################## # # Set up the main build environment. # ######################################################################## -main = Environment(tools=['default', 'git', TempFileSpawn, EnvDefaults]) +main = Environment(tools=[ + 'default', 'git', TempFileSpawn, EnvDefaults, MakeActionTool + ]) main.Tool(SCons.Tool.FindTool(['gcc', 'clang'], main)) main.Tool(SCons.Tool.FindTool(['g++', 'clang++'], main)) @@ -256,23 +261,6 @@ main.Append(CPPPATH=[Dir('ext')]) # Add shared top-level headers main.Prepend(CPPPATH=Dir('include')) -if GetOption('verbose'): - def MakeAction(action, string, *args, **kwargs): - return Action(action, *args, **kwargs) -else: - MakeAction = Action - main['CCCOMSTR'] = Transform("CC") - main['CXXCOMSTR'] = Transform("CXX") - main['ASCOMSTR'] = Transform("AS") - main['ARCOMSTR'] = Transform("AR", 0) - main['LINKCOMSTR'] = Transform("LINK", 0) - main['SHLINKCOMSTR'] = Transform("SHLINK", 0) - main['RANLIBCOMSTR'] = Transform("RANLIB", 0) - main['M4COMSTR'] = Transform("M4") - main['SHCCCOMSTR'] = Transform("SHCC") - main['SHCXXCOMSTR'] = Transform("SHCXX") -Export('MakeAction') - # Initialize the Link-Time Optimization (LTO) flags main['LTO_CCFLAGS'] = [] main['LTO_LDFLAGS'] = [] diff --git a/site_scons/gem5_scons/__init__.py b/site_scons/gem5_scons/__init__.py index ae407fb5bd..91764b058e 100644 --- a/site_scons/gem5_scons/__init__.py +++ b/site_scons/gem5_scons/__init__.py @@ -238,7 +238,27 @@ def parse_build_path(target): return os.path.join('/', *path_dirs), variant_dir -__all__ = [ - 'Configure', 'EnvDefaults', 'Transform', 'warning', 'error', - 'parse_build_dir' -] +# The MakeAction wrapper, and a SCons tool to set up the *COMSTR variables. +if SCons.Script.GetOption('verbose'): + def MakeAction(action, string, *args, **kwargs): + return SCons.Script.Action(action, *args, **kwargs) + + def MakeActionTool(env): + pass +else: + MakeAction = SCons.Script.Action + + def MakeActionTool(env): + env['CCCOMSTR'] = Transform("CC") + env['CXXCOMSTR'] = Transform("CXX") + env['ASCOMSTR'] = Transform("AS") + env['ARCOMSTR'] = Transform("AR", 0) + env['LINKCOMSTR'] = Transform("LINK", 0) + env['SHLINKCOMSTR'] = Transform("SHLINK", 0) + env['RANLIBCOMSTR'] = Transform("RANLIB", 0) + env['M4COMSTR'] = Transform("M4") + env['SHCCCOMSTR'] = Transform("SHCC") + env['SHCXXCOMSTR'] = Transform("SHCXX") + +__all__ = ['Configure', 'EnvDefaults', 'Transform', 'warning', 'error', + 'MakeAction', 'MakeActionTool']