summaryrefslogtreecommitdiff
path: root/src/SConscript
AgeCommit message (Collapse)Author
2010-11-06scons: Replace the build_dir parameter to SConscript with variant_dir.Gabe Black
The build_dir parameter name has been deprecated and replaced with variant_dir. This change switches us over to avoid warning spew in newer versions of scons.
2010-09-12swig: make all generated files go into the m5.internal packageNathan Binkert
This is necessary because versions of swig older than 1.3.39 fail to do the right thing and try to do relative imports for everything (even with the package= option to %module). Instead of putting params in the m5.internal.params package, put params in the m5.internal package and make all param modules start with param_. Same thing for m5.internal.enums. Also, stop importing all generated params into m5.objects. They are not necessary and now with everything using relative imports we wound up with pollution of the namespace (where builtin-range got overridden). --HG-- rename : src/python/m5/internal/enums/__init__.py => src/python/m5/internal/enums.py rename : src/python/m5/internal/params/__init__.py => src/python/m5/internal/params.py
2010-09-09scons: Stop building the big monolithic swigged params moduleNathan Binkert
kill params.i and create a separate .i for each object (param, enums, etc.)
2010-09-09init: don't build files that centralize python and swig codeNathan Binkert
Instead of putting all object files into m5/object/__init__.py, interrogate the importer to find out what should be imported. Instead of creating a single file that lists all of the embedded python modules, use static object construction to put those objects onto a list. Do something similar for embedded swig (C++) code.
2010-09-09scons: use code_formatter wherever we can in the build systemNathan Binkert
2010-07-21python: Add mechanism to override code compiled into the exectuableNathan Binkert
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!
2010-04-15scons: don't maintain files in sorted orderNathan Binkert
This causes builds to happen in sorted order rather than in declaration order. This gets annoying when you make a global change and then you notice that the files that are being compiled are jumping around the directory hierarchy.
2009-11-08scons: deal with generated .py files properlySteve Reinhardt
2009-09-26python: Fix m5.defines so grabbing flags works correctlyNathan Binkert
2009-09-23arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hhNathan Binkert
2009-09-22params: small cleanup to param description internalsNathan Binkert
2009-09-22python: Move more code into m5.util allow SCons to use that code.Nathan Binkert
Get rid of misc.py and just stick misc things in __init__.py Move utility functions out of SCons files and into m5.util Move utility type stuff from m5/__init__.py to m5/util/__init__.py Remove buildEnv from m5 and allow access only from m5.defines Rename AddToPath to addToPath while we're moving it to m5.util Rename read_command to readCommand while we're moving it Rename compare_versions to compareVersions while we're moving it. --HG-- rename : src/python/m5/convert.py => src/python/m5/util/convert.py rename : src/python/m5/smartdict.py => src/python/m5/util/smartdict.py
2009-06-12scons: Make shared library builds work againNathan Binkert
Compile gzstream as position independent code use the PIC version of date for shared libs...oops
2009-06-05scons: Make it so that the processing of trace flags does not depend on orderNathan Binkert
2009-05-04scons: re-work the *Source functions to take more information.Nathan Binkert
Start by turning all of the *Source functions into classes so we can do more calculations and more easily collect the data we need. Add parameters to the new classes for indicating what sorts of flags the objects should be compiled with so we can allow certain files to be compiled without Werror for example.
2009-04-21SCons: Export export_vars so SConsopts files can add to themNathan Binkert
2009-02-09scons: Require SCons version 0.98.1Nathan Binkert
This allows me to clean things up so we are up to date with respect to deprecated features. There are many features scheduled for permanent failure in scons 2.0 and 0.98.1 provides the most compatability for that. It also paves the way for some nice new features that I will add soon
2009-02-09scons: Don't build the intermediate static library unless explicitly requested.Nathan Binkert
This means that similar to libm5_fast.so, you need to explicitly build build/ALPHA_SE/libm5_fast.a if you want it.
2009-01-30SCons: Fix how we get Mercurial revision information since internals keep ↵Ali Saidi
changing.
2009-01-19tracing: panic() if people try to use tracing, but TRACING_ON is not set.Nathan Binkert
Also clean things up so that help strings can more easily be added. Move the help function into trace.py
2009-01-19python: Rework how things are importedNathan Binkert
2009-01-19scons: Don't add all objects to the library twiceNathan Binkert
2009-01-13SCons: centralize the Dir() workaround for newer versions of scons.Nathan Binkert
Scons bug id: 2006 M5 Bug id: 308
2008-11-10SCons: Allow top level directory of EXTRAS able to contain SConscripts.Nathan Binkert
The current EXTRAS will fail if the top level directory pointed to by EXTRAS has a SConscript file in it. We allow this by including the directory name of the EXTRA in the build directory which prevents a clash between src/SConscript and extra/SConscript. Maintain compatibility with older uses of EXTRAS by adding a -I for each top level extra directory.
2008-10-10swig: Add in a %rename to allow the same name to appear in multiple namespaces.Nathan Binkert
2008-10-09SimObjects: Clean up handling of C++ namespaces.Nathan Binkert
Make them easier to express by only having the cxx_type parameter which has the full namespace name, and drop the cxx_namespace thing. Add support for multiple levels of namespace.
2008-10-09pdb: Try to make pdb work better.Nathan Binkert
I've done a few things here. First, I invoke the script a little bit differently so that pdb doesn't get confused. Second, I've stored the actual filename in the module's __file__ so that pdb can find the source file on your machine.
2008-10-09SCons: add code to provide a libm5 shared library.Nathan Binkert
Targets look like libm5_debug.so. This target can be dynamically linked into another C++ program and provide just about all of the M5 features. Additionally, this library is a standalone module that can be imported into python with an "import libm5_debug" type command line.
2008-10-02unittest: Add unit tests to the scons framework.Nathan Binkert
Also fix the unit tests so they actually compile correctly.
2008-09-26scons: disable several gcc warnings for swig autogenerated wrapper code.Nathan Binkert
2008-09-22scons: Separate swig environment so we can have different flags.Nathan Binkert
Swig code isn't quite perfect, so let's not turn on all of the warnings.
2008-08-03libm5: Create a libm5 static library for embedding m5.Nathan Binkert
This should allow m5 to be more easily embedded into other simulators. The m5 binary adds a simple main function which then calls into the m5 libarary to start the simulation. In order to make this work correctly, it was necessary embed python code directly into the library instead of the zipfile hack. This is because you can't just append the zipfile to the end of a library the way you can a binary. As a result, Python files that are part of the m5 simulator are now compile, marshalled, compressed, and then inserted into the library's data section with a certain symbol name. Additionally, a new Importer was needed to allow python to get at the embedded python code. Small additional changes include: - Get rid of the PYTHONHOME stuff since I don't think anyone ever used it, and it just confuses things. Easy enough to add back if I'm wrong. - Create a few new functions that are key to initializing and running the simulator: initSignals, initM5Python, m5Main. The original code for creating libm5 was inspired by a patch Michael Adler, though the code here was done by me.
2008-08-02kill unused codeNathan Binkert
2008-07-31scons: Get rid of generate.py in the build system.Nathan Binkert
I decided that separating some of the scons code into generate.py was just a bad idea because it caused the dependency system to get all messed up. If separation is the right way to go in the future, we should probably use the sconscript mechanism, not the mechanism that I just removed.
2008-06-14Add missing dependencies on .i filesNathan Binkert
2008-06-13scons: fix program_info.cc generationNathan Binkert
2008-06-13HG: Add compiled hg revision and date to the standard M5 output.Ali Saidi
2008-02-11EXTRAS now points to src instead of needing 'src' subdir.Steve Reinhardt
--HG-- extra : convert_revision : 8e7e4516ace8c7852eeea3c479bfd567839a8061
2008-02-05Cleaned up os.path imports a bit.Steve Reinhardt
--HG-- extra : convert_revision : ee75bf9abd249ab053e804739cc50972475cd5b6
2008-02-05Make EXTRAS work for SConsopts too.Steve Reinhardt
Requires pushing source files down into 'src' subdir relative to directory listed in EXTRAS. --HG-- extra : convert_revision : ca04adc3e24c60bd3e7b63ca5770b31333d76729
2007-11-16Make EXTRAS work for relative directories.Steve Reinhardt
Also print a little feedback when processing EXTRAS. --HG-- extra : convert_revision : 9cb324b0d5bc60a3c98af6495f16415b529e4af2
2007-10-31Traceflags: Add SCons function to created a traceflag instead of having one ↵Ali Saidi
file with them all. --HG-- extra : convert_revision : 427f6bd8f050861ace3bc0d354a1afa5fc8319e6
2007-09-10Fix for leaving EXTRAS blankGabe Black
Apparently env['EXTRAS'] will return an empty string if not set. split will then split it into an empty string, and normalize will turn "" into ".". --HG-- extra : convert_revision : f79efebb129fdd65161fcf4d4582c2a8541aeacd
2007-09-10Normalize the path pathed in through EXTRAS so it won't break with a ↵Gabe Black
trailing slash. --HG-- extra : convert_revision : c14e2c6d97b5bcb491b91eeb4e7dc04d1cc35475
2007-07-25Add a new SCons option called EXTRAS that allows you to include stuff inNathan Binkert
the build process that is outside of the main M5 tree. --HG-- extra : convert_revision : 6edc4fbc58240f83b59c7b5707c0390cdb85d9ec
2007-07-23Major changes to how SimObjects are created and initialized. Almost allNathan Binkert
creation and initialization now happens in python. Parameter objects are generated and initialized by python. The .ini file is now solely for debugging purposes and is not used in construction of the objects in any way. --HG-- extra : convert_revision : 7e722873e417cb3d696f2e34c35ff488b7bff4ed
2007-06-20Don't go over 80 chars per lineNathan Binkert
--HG-- extra : convert_revision : ec73c3c8788757990a6fab8c600f3b353d0d4206
2007-04-12Completely re-work how the scons framework incorporates swigNathan Binkert
and python code into m5 to allow swig an python code to easily added by any SConscript instead of just the one in src/python. This provides SwigSource and PySource for adding new files to m5 (similar to Source for C++). Also provides SimObject for including files that contain SimObject information and build the m5.objects __init__.py file. --HG-- extra : convert_revision : 38b50a0629846ef451ed02f96fe3633947df23eb
2007-04-12Don't allow Source to accept multiple arguments, lists,Nathan Binkert
or automatically do Split(). It isn't used anywhere, and isn't very consistent with the python features that are about to be added. Do accept SCons.Node.FS.File arguments though. --HG-- extra : convert_revision : 0f3bb0e9e6806490330eea59a104013042b4dd49
2007-03-10Rework the way SCons recurses into subdirectories, making itNathan Binkert
automatic. The point is that now a subdirectory can be added to the build process just by creating a SConscript file in it. The process has two passes. On the first pass, all subdirs of the root of the tree are searched for SConsopts files. These files contain any command line options that ought to be added for a particular subdirectory. On the second pass, all subdirs of the src directory are searched for SConscript files. These files describe how to build any given subdirectory. I have added a Source() function. Any file (relative to the directory in which the SConscript resides) passed to that function is added to the build. Clean up everything to take advantage of Source(). function is added to the list of files to be built. --HG-- extra : convert_revision : 103f6b490d2eb224436688c89cdc015211c4fd30