Merge ktlim@zizzer.eecs.umich.edu:/bk/m5
[gem5.git] / build / SConstruct
index 08eb13ea1210a1f3678682978c8d5379d025933d..068158a4e93c76418625931f69014285eb449991 100644 (file)
@@ -62,6 +62,9 @@ if not os.path.isdir('ext'):
           % EXT_SRCDIR
     sys.exit(1)
 
+# tell python where to find m5 python code
+sys.path.append(os.path.join(SRCDIR, 'python'))
+
 
 ###################################################
 #
@@ -93,7 +96,7 @@ def AlphaConfig(env):
 def KernelConfig(env):
     env.Replace(TARGET_ISA = 'alpha')
     env.Replace(FULL_SYSTEM = True)
-    env.Append(CPPDEFINES = ['FULL_SYSTEM', 'SYSTEM_EV5'])
+    env.Append(CPPDEFINES = ['FULL_SYSTEM'])
 
 # Base configurations map.
 configs_map = {
@@ -114,11 +117,16 @@ def MySqlOpt(env):
 def NoFastAllocOpt(env):
     env.Append(CPPDEFINES = 'NO_FAST_ALLOC')
 
+# Enable efence
+def EfenceOpt(env):
+    env.Append(LIBS=['efence'])
+
 # Configuration options map.
 options_map = {
     'MEASURE' : MeasureOpt,
     'MYSQL' : MySqlOpt,
-    'NO_FAST_ALLOC' : NoFastAllocOpt
+    'NO_FAST_ALLOC' : NoFastAllocOpt,
+    'EFENCE' : EfenceOpt
     }
 
 # The 'local_configs' file can be used to define additional base
@@ -239,12 +247,31 @@ default_env = Environment(ENV = os.environ,  # inherit user's enviroment vars
                           FULL_SYSTEM = False,
                           USE_MYSQL = False)
 
+default_env.SConsignFile("sconsign")
+
+# For some reason, the CC and CXX variables don't get passed into the
+# environment correctly.  This is probably some sort of scons bug that
+# will eventually be fixed.
+if os.environ.has_key('CC'):
+    default_env.Replace(CC=os.environ['CC'])
+
+if os.environ.has_key('CXX'):
+    default_env.Replace(CXX=os.environ['CXX'])
+
 # M5_EXT is used by isa_parser.py to find the PLY package.
 default_env.Append(ENV = { 'M5_EXT' : EXT_SRCDIR })
 
 default_env.Append(CCFLAGS='-pipe')
 default_env.Append(CCFLAGS='-fno-strict-aliasing')
 default_env.Append(CCFLAGS=Split('-Wall -Wno-sign-compare -Werror -Wundef'))
+default_env.Append(CPPPATH=[os.path.join(EXT_SRCDIR + '/dnet')])
+
+# libelf build is described in its own SConscript file.  Using a
+# dictionary for exports lets us export "default_env" so the
+# SConscript will see it as "env".  SConscript-global is the build in
+# build/libelf shared among all configs.
+default_env.SConscript('m5/libelf/SConscript-global',
+                       exports={'env' : default_env})
 
 ###################################################
 #
@@ -270,7 +297,7 @@ for build_dir in build_dirs:
 ###################################################
 #
 # Let SCons do its thing.  At this point SCons will use the defined
-# build enviornments to build the requested targets.
+# build environments to build the requested targets.
 #
 ###################################################