summaryrefslogtreecommitdiff
path: root/src/SConscript
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2010-07-21 15:53:52 -0700
committerNathan Binkert <nate@binkert.org>2010-07-21 15:53:52 -0700
commit35184169179ad873b96bc99e5c9bdc4d3dd5ead6 (patch)
tree6bb30209570a3f8757c94882cc2a5363e0c1998e /src/SConscript
parent11bb678a8017bba31c69847ee87212579b6b2f02 (diff)
downloadgem5-35184169179ad873b96bc99e5c9bdc4d3dd5ead6.tar.xz
python: Add mechanism to override code compiled into the exectuable
If the user sets the environment variable M5_OVERRIDE_PY_SOURCE to True, then imports that would normally find python code compiled into the executable will instead first check in the absolute location where the code was found during the build of the executable. This only works for files in the src (or extras) directories, not automatically generated files. This is a developer feature!
Diffstat (limited to 'src/SConscript')
-rw-r--r--src/SConscript17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/SConscript b/src/SConscript
index 51616701b..5879fbc93 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -929,12 +929,17 @@ def pythonInit(target, source, env):
dst = file(str(target[0]), 'w')
def dump_mod(sym, endchar=','):
+ def c_str(string):
+ if string is None:
+ return "0"
+ return '"%s"' % string
pysource = PySource.symnames[sym]
- print >>dst, ' { "%s",' % pysource.arcname
- print >>dst, ' "%s",' % pysource.modpath
- print >>dst, ' %s_beg, %s_end,' % (sym, sym)
- print >>dst, ' %s_end - %s_beg,' % (sym, sym)
- print >>dst, ' *(int *)%s_end }%s' % (sym, endchar)
+ print >>dst, ' { %s,' % c_str(pysource.arcname)
+ print >>dst, ' %s,' % c_str(pysource.abspath)
+ print >>dst, ' %s,' % c_str(pysource.modpath)
+ print >>dst, ' %s_beg, %s_end,' % (sym, sym)
+ print >>dst, ' %s_end - %s_beg,' % (sym, sym)
+ print >>dst, ' *(int *)%s_end }%s' % (sym, endchar)
print >>dst, '#include "sim/init.hh"'
@@ -953,7 +958,7 @@ def pythonInit(target, source, env):
# Skip the importer since we've already exported it
continue
dump_mod(sym)
- print >>dst, " { 0, 0, 0, 0, 0, 0 }"
+ print >>dst, " { 0, 0, 0, 0, 0, 0, 0 }"
print >>dst, "};"