Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

0 views
Skip to first unread message

Steven Knight

unread,
Jul 15, 2002, 6:00:06 PM7/15/02
to
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.08 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.08 contains the following interface changes:
- The old feature of automatically splitting strings of file names
on white space has been REMOVED.
- The prefix, suffix and src_suffix arguments to the Builder()
function may no longer be callable functions.
- The BUILDERS construction variable should now be a dictionary
that maps builder names to actions. Existing uses of lists,
and the Builder() name= keyword argument, generate warnings
about use of deprecated features.
- The "shared" keyword argument has been removed from the Object
and Library builders. Shared and static objects and libraries
should now be created via the separate StaticObject, SharedObject,
StaticLibrary and SharedLibrary builders. Object and Library are
now synonyms for StaticObject and StaticLibrary, respectively.

This release adds the following features:
- New construction environment Append() and Replace() methods allow
clearer manipulation of construction variables.
- New functions: FindFile(), GetLaunchDir(), SetBuildSignatureType(),
SideEffect().
- New command-line options: --debug=time, --implicit-deps-changed,
--implicit-deps-unchanged, --warn.
- New Builders: Tar.
- Added a new Platform() method with support for the cygwin, os2,
posix, and win32 platforms.
- New "platform" and "tools" keyword arguments to Environment().
- Added a new Tool() method with support for the ar, dvipdf, dvips,
g++, g77, gas, gcc, gnulink, icc, ilink, latex, lex, lib, masm,
mslink, msvc, nasm, pdflatex, pdftex, tar, tex and yacc tools.
- A dependency Scanner for native Fortran "include" statements,
using a new "F77PATH" construction variable.
- The -v option prints more specific version / build information.
changes in the case of drive letters don't cause a rebuild.
- The "target" argument to a Builder call may now be omitted, in which
case the target(s) are deduced from the source file(s) and the
Builder's specified suffix.
- A new "multi" keyword argument to Builder() specifies that it's okay
to call the builder multiple times for a target.
- SCons now automatically falls back to using timestamps for
out-of-date checks if the Python MD5 module can't be imported.
- Multiple calls for a single Alias() will now append values.

The following fixes have been added:
- File names with multiple dots are now handled correctly.
- The --implicit-cache option has been fixed if the scanner returns
an empty list; no longer causes redundant rebuilds when the header
file list changed; has been fixed when a file has no implicit
dependencies and its source is generated.
- C dependency scanning now detects #include file names with characters
like '-'.
- Shared libraries now use LIBS and LIBPATH for dependencies.
- A build directory may now be outside of the SConstruct tree.
- Shared object builds using g++ and gcc now use $CPPFLAGS, too.
- A single interrupt is now guaranteed to halt SCons both when using -j
and not.
- Relative CPPPATH directories now work correctly when using BuildDir().
- SCons now prints an error message if a file can't be unlinked before
being built, instead of just silently terminating the build.
- Emitter functions' use of path names work properly using BuildDir or
in subdirectories.
- Fix .sconsign signature storage so that output files of one build
can be safely used as input files to another build.

Performance has been improved as follows:
- Use our own version of the inefficient stock os.path.splitext() method.
- Cache source suffix computation.
- Code cleanup in MultiStepBuilder.__call__().
- Replicate some logic in scons_subst().

The following changes have been made to the SCons packaging:
- Updated README instructions and setup.py code to catch an
installation failure from not having distutils installed.

The documentation has been updated to reflect the above changes.


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, Jeff Petkau, Anthony Roach, Zed Shaw
and Terrel Shumway for their contributions to this release.

On behalf of the SCons team,

--SK

0 new messages