ANNOUNCE: SCons 0.12 (build tool in Python) is now available
Steven Knight
knight@baldmt.com
Fri, 28 Mar 2003 07:34:16 -0600 (CST)
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.12 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.12 contains the following interface changes:
- SCons now changes to the directory in which an SConscript
file resides while reading that SConscript file.
See the release notes for more information about this change.
This release adds the following features:
- Support has been added for fetching source files from the SCCS, RCS,
CVS, Perforce and BitKeeper source code management systems.
- A separate src_dir argument to SConscript() allows explicit
specification of where source files can be found.
- Current Builder-based command generators can be replaced by more
flexible generators based on callable construction variables.
- The Install() and InstallAs() builders now copy files. This behavior
is now configurable via the INSTALL construction variable.
- SCons now issues a warning if you try to use the reserved variable
names TARGET, TARGETS, SOURCE or SOURCES.
- Builders for Tar and Zip files have been added.
- SCons now supports an explicit Exit() function for terminating early.
- The masm tool now supports SharedObject() builds.
This release removes the following deprecated features:
- Builder objects no longer support a "name" argument.
- The Environment.Update() method has been removed.
The following fixes have been added:
- The string value of a File or Dir node now rturns a path
relative to the calling SConscript file's directory, not the
top-level directory.
- Commands that expand the third or later argument from $TARGET,
$TARGETS, $SOURCE or $SOURCES now calculate signatures properly.
- Exceptions thrown by Scanners are no longer silently eaten.
- A built file may no longer be pushed to a CacheDir() with a
signature of None.
- Built files are no longer copied to a CacheDir() if they're
already there.
- Files copied to a CacheDir() are now written to a temporary file
and renamed, to avoid corrupt partial copies.
- The -U option with no Default() targets no longer throws an exception.
- The -u option, when used from a source directory with no local
targets, will now build corresponding targets in any associated
BuildDir()s.
- The WhereIs() function now returns normalized path names.
- An Aliased source that doesn't exist no longer generates an
incorrect dependency-cycle error.
Performance has been improved as follows:
- The internal to_String() function has been sped up.
The documentation has been improved:
- Clearer explanation has been added of how to export variables to a
subsidiary SConscript file.
- Bugs in various Tool examples have been fixed.
- The man page now correctly describes that the -f option doesn't
change to the directory in which the SConstruct file lives.
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 Charles Crain, Lachlan O'Dea, Jeff Petkau and Anthony
Roach for their contributions to this release.
On behalf of the SCons team,
--SK