ANNOUNCE: SCons.0.9 (Python build tool) is now available

Steven Knight knight at baldmt.com
Fri Dec 6 11:50:29 EST 2002


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.09 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.

This is a big release that took a long time to produce, mainly due to
the addition of the major new Repository feature.


WHAT'S NEW IN THIS RELEASE?

IMPORTANT:  Release 0.09 contains the following interface changes:
  - The SetCommandHandler() function has been superceded by new SPAWN,
    SHELL and ESCAPE construction variables.
  - SCons now exits with an error message if any source or implicit
    dependency files for a target do not exist and have no Builder.
  - The 'lib' tool (the Microsoft library archiver) has had its name
    changed to 'mslib'.
  - User defined build arguments passed into Builder calls are no
    longer given to emitters, generators, and function actions as
    keyword arguments, but are instead passed as construction 
    variables.

This release adds the following features:
  - A new Repository() method and -Y command-line option support
    building from source or target files in common repositories.
  - A new Prepend() Environment method appends values to the beginning
    of construction variables.
  - Support for the Intel Fortran Compiler (ifl.exe) has been added.
  - New messages tell when SCons is "Reading SConscript files ...,"
    "done reading SConscript files," "Building targets," and "done
    building targets."  A new -Q option supresses these.
  - Shared-object prefixes and suffixes may be specified independently
    usng new $SHOBJPREFIX and $SHOBJSUFFIX construction variables.
  - A new ParseConfig() command supports modifying an environment based
    on parsing output from a *-config command.
  - New EnsurePythonVersion() and EnsureSConsVersion() functions.
  - SCons now checks dynamically for the existence of utilities with
    which to initialize Environments by default.
  - SCons now supports Microsoft VC++ precompiled header (.pch) files,
    debugger (.pdb) files, and resource (.rc) files.
  - The File() and Dir() methods can now take a path-name string as
    the starting directory.
  - A new Options() object makes it easier to extend SCons' command-
    line arguments.
  - A new SetContentSignatureType() function allows use of file
    timestamps instead of MD5 signatures.
  - You can now override construction variables when you call a Builde.

The following fixes have been added:
  - Construction variable substition on scanner directories (in CPPPATH,
    F77PATH, LIBPATH, etc.) is now supported.
  - $$ in a string is now passed through as $.
  - File names and command lines with spaces and other odd characters
    are now fully supported.
  - The "lib" Tool (Microsoft library archiver) now supports long
    command lines.
  - Auto-deduced target file names now end up in the same directory
    as their source files.
  - Source files specified on the command line are no longer removed.
  - Using Default() with the -U option now fails gracefully.
  - SCons no longer unlinks files in certain situations when the -n
    option is used.
  - SCons now issues a warning when -c can't remove a target.
  - File names like '#/../foo' are now interpreted correctly on Win32
    systems.
  - SCons now supplies an error message if there are no command-line or
    Default() targets specified.
  - The $ASPPCOM variable has been fixed for the GNU assembler.
  - The -U option is now properly case-insensitive on Win32 systems.
  - Using the -j option with multiple targets is now more robust.
  - SCons now handles a corrupt .sconsign file robustly.
  - Access and modification times of files in a BuildDir now match
    the corresponding source file, even without hard links.
  - Dependencies now propogate succesfully through Alias targets.
  - Fix unnecessary rebuilds cased by differently-ordered targets
    on case-insensitive systems.
  - Dependency scans when $LIBS is overridden now work properly.
  - Build errors in a list of build commands no longer cause the
    display of an overly-verbose stack trace.

Performance has been improved as follows:
  - Unnecessary Scanner calls have been eliminated when a file
    doesn't exist.
  - The $_CPPINCFLAGS, $_F77INCFLAGS, $_LIBFLAGS and $_LIBDIRFLAGS variables
    are now generated on-demand, not with every command invocation.
  - Command execution overhead has been reduced by using the Python
    os.sytem() function instead of fork() and exec().

The following changes have been made to the SCons packaging:
  - New scons-local packages make it easy to ship SCons as a
    stand-alone build tool in other software packages.

The documentation has been improved:
  - Documented the fact that Builder calls return Node objects.
  - Documented all new features, of course...


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

Thanks to Chad Austin, Matt Balvin, Steve Leblanc, Jeff Petkau and sam
th for their contributions to this release.  Special thanks to Charles
Crain for heavy work on the Repository feature, and Anthony Roach for
a tremendous number of bug fixes and other features.

On behalf of the SCons team,

	--SK





More information about the Python-list mailing list