summaryrefslogtreecommitdiff
path: root/SConstruct
AgeCommit message (Collapse)Author
2011-06-02SConstruct: automatically update .hg/hgrc with style hooks.Steve Reinhardt
Seems easier than pestering people about it. Note also that path is now absolute, so you don't get errors when invoking hg from subdirectories. Also whacked unused mercurial_bin_not_found message (the code that used this was deleted a couple months ago in rev 5138d1e453f1).
2011-05-12stats: delete mysql supportNathan Binkert
we can add it back within python in some future changeset
2011-05-02scons: interpret paths relative to launch directorySteve Reinhardt
Make sure all command-line targets and EXTRAS directories are interpreted relative to the launch directory. This turns out to be very useful when building code from an EXTRAS directory using SCons's -C option. We were trying to do this with targets but it didn't actually work since we didn't update BUILD_TARGETS (so SCons got confused internally). We weren't even trying with EXTRAS. To simplify the code, the default target is also interpreted relative to the launch dir even though it was explicitly handled as relative to the m5 dir before... I doubt anyone really uses this anyway so it didn't seem worth the complexity. (Maybe we should get rid of it?)
2011-05-02scons: allow use of current builds as default build settingsSteve Reinhardt
Currently the --default= option only looks at the predefined build configs (in m5/build_opts), so you're limited to basing a new build config off of those (ALPHA_SE, etc.). If you've already defined a non-standard build config and want to clone it or tweak it, you have to start from scratch. This patch causes --default= to look first among the existing builds (in build/variables) before looking in build_opts so you can specify an existing non-standard build config as a starting point for a new config.
2011-03-18base: disable FastAlloc in debug builds by defaultSteve Reinhardt
FastAlloc's reuse policies can mask allocation bugs, so we typically want it disabled when debugging. Set FORCE_FAST_ALLOC to enable even when debugging, and set NO_FAST_ALLOC to disable even in non-debug builds.
2011-03-11SCons: Stop embedding the mercurial revision into the binary.Gabe Black
This causes a lot of rebuilds that could have otherwise possibly been avoided, and, more annoyingly, a lot of unnecessary rerunning of the regressions. The benefits of having the revision in the output haven't materialized, so this change removes it.
2011-03-04SCons: Fix the polarity on the --ignore-style check.Gabe Black
2011-03-03SCons: Clean up some inconsistent capitalization in scons options.Gabe Black
2011-03-03SCons: Turn some scons variables into command line options.Gabe Black
2011-03-01SCons: Separately label the global non-sticky options.Gabe Black
The global sticky options were being printed with a heading, and then the global nonsticky options were being printed immediately after them without a heading. Because the two lists ran together and the first had its own heading, it looked like -all- those options where sticky even though some of them aren't. This change adds a label to the second list so it's clear they're different.
2011-01-21SConstruct: Fix the librt check in SConstruct.Gabe Black
2011-01-15time: improve time datastructureNathan Binkert
Use posix clock functions (and librt) if it is available. Inline a bunch of functions and implement more operators. * * * time: more cleanup
2011-01-10style: clean up style hook code a bitNathan Binkert
I've renamed the check_whitespace operation to check_style. You're going to need to change your .hg/hgrc file. While you're at it, add a pre-qrefresh hook please.
2011-01-07scons: show sources and targets when building, and colorize output.Steve Reinhardt
I like the brevity of Ali's recent change, but the ambiguity of sometimes showing the source and sometimes the target is a little confusing. This patch makes scons typically list all sources and all targets for each action, with the common path prefix factored out for brevity. It's a little more verbose now but also more informative. Somehow Ali talked me into adding colors too, which is a whole 'nother story.
2010-12-30style: make style hook work with pre-qrefresh and update to use new codeNathan Binkert
clean up the code a little bit while we're at it. I recommend that everyone adds the pre-qrefresh hook below since it will make qref run the style hook and not just commit/qpush [extensions] style = <m5 path>/util/style.py [hooks] pretxncommit.style = python:style.check_whitespace pre-qrefresh.style = python:style.check_whitespace
2010-11-19SCons: Fix compilation on OS XAli Saidi
2010-11-15SCons: Cleanup SCons output during compileAli Saidi
2010-11-09scons: Work around for old versions of scons mistaking strings for sequences.Gabe Black
2010-11-08scons: add a parameter to configure SCons' build cacheAli Saidi
2010-08-23BUILD: GCC 4.4.1/2 have a bug in their auto-vectorizer that we trip onAli Saidi
2010-06-14build: grab the right library if we're using a debug version of pythonNathan Binkert
2010-06-07scons: make RUBY a regular (non-global) sticky varSteve Reinhardt
and force it to True for builds that imply Ruby protocols (else unexpected things happen when testing these builds with RUBY=False).
2010-02-26cpu_models: get rid of cpu_models.py and move the stuff into SConsNathan Binkert
2010-01-17SCons: Make --help reflect the arguments to scons.Gabe Black
The arguments were added to the global_sticky_vars Variables object after the basic help text was generated. As a result, the "actual:" value wouldn't reflect the arguments to scons and wouldn't really be the "actual" value used by the build. This change fixes that by updating global_sticky_vars slightly earlier.
2009-09-23arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hhNathan Binkert
2009-09-22scons: add slicc and ply to sys.path and PYTHONPATH so everyone has accessNathan 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-05-11ruby: add RUBY sticky option that must be set to add ruby to the buildNathan Binkert
Default is false
2009-05-11ruby: Migrate all of ruby and slicc to SCons.Nathan Binkert
Add the PROTOCOL sticky option sets the coherence protocol that slicc will parse and therefore ruby will use. This whole process was made difficult by the fact that the set of files that are output by slicc are not easily known ahead of time. The easiest thing wound up being to write a parser for slicc that would tell me. Incidentally this means we now have a slicc grammar written in python.
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: Rename the basic environment from env -> main.Nathan Binkert
env is used as a local variable all over the place and sometimes it is easy to get confused as to whether the global env or local env is being used. This will become especially important when I change the way we support our variants.
2009-04-21scons: Fix two problems with the way that the library path is generated.Nathan Binkert
1) -L is automatically added, so don't do it ourselves 2) prepend the paths for gzstream and libelf so they are certain to come first. The problem is that python might add /usr/lib to the path and the user might have a locally installed version of libelf installed.
2009-04-21scons: make default target work againNathan Binkert
2009-04-21SCons: Export export_vars so SConsopts files can add to themNathan Binkert
2009-04-08alpha: get rid of all turbolaser remnantsNathan Binkert
2009-03-17includes: add ext to the includes path.Nathan Binkert
move dnet to the correct place so that we use this --HG-- rename : ext/dnet/dnet/addr.h => ext/dnet/addr.h rename : ext/dnet/dnet/arp.h => ext/dnet/arp.h rename : ext/dnet/dnet/blob.h => ext/dnet/blob.h rename : ext/dnet/dnet/eth.h => ext/dnet/eth.h rename : ext/dnet/dnet/fw.h => ext/dnet/fw.h rename : ext/dnet/dnet/icmp.h => ext/dnet/icmp.h rename : ext/dnet/dnet/intf.h => ext/dnet/intf.h rename : ext/dnet/dnet/ip.h => ext/dnet/ip.h rename : ext/dnet/dnet/ip6.h => ext/dnet/ip6.h rename : ext/dnet/dnet/os.h => ext/dnet/os.h rename : ext/dnet/dnet/rand.h => ext/dnet/rand.h rename : ext/dnet/dnet/route.h => ext/dnet/route.h rename : ext/dnet/dnet/tcp.h => ext/dnet/tcp.h rename : ext/dnet/dnet/udp.h => ext/dnet/udp.h
2009-03-17ply: put the absolute path to ply in the environment, not a relative oneNathan Binkert
2009-03-07scons: fix the library path stuffNathan Binkert
2009-03-05SCons: Fix bug with .hg dir not existing.Ali Saidi
2009-02-26CPA: Add new object for gathering critical path annotations.Ali Saidi
2009-02-15SCons: Fix read_command so it can properly deal with command stringsNathan Binkert
2009-02-11scons: clean up the main SConstruct file more.Nathan Binkert
Add some features to read_command so it works a little bit better Clean up the mercurial checks. Filter the user environment and only pick out the useful stuff.
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
2008-11-15Output: Include gzstream package to allow automatically-gzipped outputClint Smullen
The gzstream package provides an ostream-interface for writing gzipped files. The package comes from: http://www.cs.unc.edu/Research/compgeom/gzstream/ And is distributed under the LGPL license. Both the license and version information has been preservered, though all other files in the package have been purged. Minor modifications to the code have been made. The output module detects when a filename ends in .gz and constructs an ogzstream object instead of an ofstream object. This works for both the create(...) and find(...) commands. Additionally, since gzstream objects needs to be closed to ensure proper file termination, I have the output deconstructor deleting all ostream's that it manages on behalf of find(...). At the moment, the only output file that I know this functionality works for is stats, i.e. by specifying "--stats-file=m5stats.txt.gz" on the command line.
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-26BATCH: Run as, ar, and ranlib with BATCH_CMD so that they execute on the ↵Ali Saidi
batch hosts, not local host.
2008-10-08Scons: Update compare_versions() to ignore trailing charecters after an int. ↵Ali Saidi
This is a fix for a mysql version number that includes a (E.g. 5.0.51a)
2008-09-27gcc: Version 4.3 adds some warnings that we're turning off.Nathan Binkert
We just can't deal with right now.
2008-09-19We're searching for g++ incorrectlyNathan Binkert
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.