SCons is a software construction tool (build tool, or make tool) written
in Python. It is based on the design which won the Software Carpentry
build tool competition in August 2000.
Version 0.10 of SCons has been released and is available for download
from the SCons web site:
http://www.scons.org/
Or through the download link at the SCons project page at SourceForge:
http://sourceforge.net/projects/scons/
RPM and Debian packages and a Win32 installer are all available, in
addition to the traditional .tar.gz and .zip files.
WHAT'S NEW IN THIS RELEASE?
IMPORTANT: Release 0.10 contains the following interface changes:
- The meaning of the third argument passed to user-defined Scanner
functions has changed. It was formerly the target node being built,
and is now a list of directories (a path) which may be searched for
files found during the scan.
- The .sconsign files are no longer ASCII text, they are now a pickled
(binary) Python data structure.
This release adds the following features:
- SCons now prints a description of Python functions being executed as
actions to update a target.
- Scanners now support a "recursive" attribute that specifies the
Scanner will be re-applied to files found during the scan.
- A new Clean() method supports removing user-specified files when
using the -c option.
- New SetJobs() and GetJobs() method support setting or fetching
the default number of jobs.
- The MinGW tool chain is now supported.
- A new --debug=includes option has been added.
The following fixes have been added:
- SCons now symlinks or copies files from Repositories on different
file systems, when hard links won't work.
- The Install() method prints something when the -n option is used.
- When the -n option is used, SCons no longer creates duplicate source
files in a BuildDir().
- The Program() Builder (and other multiple-step Builders) now work
properly when only the source file is specified.
- A bug when building a file whose basename matched the
directory in which it lived has been fixed.
- The -c options will now properly remove symlinks.
- The Environment.get() now returns None by default.
- Error messages now all start with "scons: ***".
- Warning messages now all start with "scons: warning:".
Performance has been improved as follows:
- Scanners are now called once and only once per file.
- Internal checks for whether a file has a Builder have been
significantly sped up.
- Unnecessary internal imports have been removed.
The following changes have been made to the SCons packaging:
- The scons-local packages no longer contain Python bytecode (*.pyc)
files.
The documentation has been improved:
- The initial explanation of SConscript files has been improved.
- A misformatted table in the StaticObject description has been fixed.
- New features have been documented.
ABOUT SCONS
Distinctive features of SCons include:
- a global view of all dependencies; no multiple passes to get
everything built properly
- configuration files are Python scripts, allowing the full use of a
real scripting language to solve difficult build problems
- a modular architecture allows the SCons Build Engine to be
embedded in other Python software
- the ability to scan files for implicit dependencies (#include files);
- improved parallel build (-j) support that provides consistent
build speedup regardless of source tree layout
- use of MD5 signatures to decide if a file has really changed; no
need to "touch" files to fool make that something is up-to-date
- easily extensible through user-defined Builder and Scanner objects
- build actions can be Python code, as well as external commands
An scons-users mailing list is available for those interested in getting
started using SCons. You can subscribe at:
http://lists.sourceforge.net/lists/listinfo/scons-users
Alternatively, we invite you to subscribe to the low-volume
scons-announce mailing list to receive notification when new versions of
SCons become available:
http://lists.sourceforge.net/lists/listinfo/scons-announce
ACKNOWLEDGEMENTS
Special thanks to Derrick 'dman' Hudson, Steve Leblanc, Lachlan O'Dea,
and Anthony Roach for their contributions to this release.
On behalf of the SCons team,
--SK