diff options
author | Nathan Binkert <nate@binkert.org> | 2010-07-21 15:53:52 -0700 |
---|---|---|
committer | Nathan Binkert <nate@binkert.org> | 2010-07-21 15:53:52 -0700 |
commit | 35184169179ad873b96bc99e5c9bdc4d3dd5ead6 (patch) | |
tree | 6bb30209570a3f8757c94882cc2a5363e0c1998e /src/SConscript | |
parent | 11bb678a8017bba31c69847ee87212579b6b2f02 (diff) | |
download | gem5-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/SConscript | 17 |
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, "};" |