summaryrefslogtreecommitdiff
path: root/src/python
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-02-21 18:30:52 +0000
committerGabe Black <gblack@eecs.umich.edu>2007-02-21 18:30:52 +0000
commitf8ffc84d0b4fc908487a0af200abcc3cfce56633 (patch)
treeec9c02b93c00c0f9bcedefca9303c0c0a0fb7876 /src/python
parent3afbf306f47152f2a9cacbe972797bd9cb6910fd (diff)
parenta329631edbf18d01f5f84b57147bdd69f1e2e6b3 (diff)
downloadgem5-f8ffc84d0b4fc908487a0af200abcc3cfce56633.tar.xz
Merge zizzer.eecs.umich.edu:/bk/newmem
into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem --HG-- extra : convert_revision : bab45577db1967de1dd88ec9b228f106a4ab7479
Diffstat (limited to 'src/python')
-rw-r--r--src/python/SConscript35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/python/SConscript b/src/python/SConscript
index 4dd614cfb..8c7e47909 100644
--- a/src/python/SConscript
+++ b/src/python/SConscript
@@ -99,12 +99,13 @@ pyzip_files.append('m5/info.py')
pyzip_files.append(join(env['ROOT'], 'util/pbs/jobfile.py'))
pyzip_files.append(join(env['ROOT'], 'src/base/traceflags.py'))
-def swig_it(basename):
- env.Command(['swig/%s_wrap.cc' % basename, 'm5/internal/%s.py' % basename],
- 'swig/%s.i' % basename,
+swig_modules = []
+def swig_it(module):
+ env.Command(['swig/%s_wrap.cc' % module, 'm5/internal/%s.py' % module],
+ 'swig/%s.i' % module,
'$SWIG $SWIGFLAGS -outdir ${TARGETS[1].dir} '
'-o ${TARGETS[0]} $SOURCES')
- pyzip_dep_files.append('m5/internal/%s.py' % basename)
+ swig_modules.append(module)
swig_it('main')
swig_it('debug')
@@ -113,6 +114,32 @@ swig_it('random')
swig_it('stats')
swig_it('trace')
+# Automatically generate m5/internals/__init__.py
+def MakeInternalsInit(target, source, env):
+ f = file(str(target[0]), 'w')
+ for m in swig_modules:
+ print >>f, 'import %s' % m
+ f.close()
+
+swig_py_files = [ 'm5/internal/%s.py' % m for m in swig_modules ]
+env.Command('m5/internal/__init__.py', swig_py_files, MakeInternalsInit)
+pyzip_dep_files.append('m5/internal/__init__.py')
+
+def MakeSwigInit(target, source, env):
+ f = file(str(target[0]), 'w')
+ print >>f, 'extern "C" {'
+ for m in swig_modules:
+ print >>f, ' void init_%s();' % m
+ print >>f, '}'
+ print >>f, 'void init_swig() {'
+ for m in swig_modules:
+ print >>f, ' init_%s();' % m
+ print >>f, '}'
+ f.close()
+
+swig_cc_files = [ 'swig/%s_wrap.cc' % m for m in swig_modules ]
+env.Command('swig/init.cc', swig_cc_files, MakeSwigInit)
+
# Action function to build the zip archive. Uses the PyZipFile module
# included in the standard Python library.
def buildPyZip(target, source, env):