diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-02-21 18:30:52 +0000 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-02-21 18:30:52 +0000 |
commit | f8ffc84d0b4fc908487a0af200abcc3cfce56633 (patch) | |
tree | ec9c02b93c00c0f9bcedefca9303c0c0a0fb7876 /src/python | |
parent | 3afbf306f47152f2a9cacbe972797bd9cb6910fd (diff) | |
parent | a329631edbf18d01f5f84b57147bdd69f1e2e6b3 (diff) | |
download | gem5-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/SConscript | 35 |
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): |