A new SCons checkpoint release, 0.97.0d20070809, is now available at
the SCons download page:
http://www.scons.org/download.php
The primary purpose of a "checkpoint release" (a new part of the SCons
release cycle) is to provide early access to new features so that they
can be tested in the field before being rolled into releases that would
be adopted by other software distributions. To this extent, a checkpoint
release serves some of the same function as the old 0.96.9X releases.
Note that a checkpoint release is developed using the same test-driven
development methodology as all SCons releases. Existing SCons
functionality should all work as it does in previous releases (except
for any changes identified in the release notes) and early adopters
should be able to use safely a checkpoint release for production work
with existing SConscript files. If not, it represents not only a bug
in SCons but also a hole in the regression test suite, and we very much
want to hear about it.
New features may be more lightly tested than in past releases, especially
as concerns their interaction with all of the other functionality
in SCons. We are especially interested in hearing bug reports about
new functionality.
We do not recommend that downstream distributions (Debian, Fedora,
etc.) package a checkpoint release, mainly to avoid confusing the "public"
release numbering with the funky checkpoint naming.
Here is a summary of the changes since 0.97:
NEW FUNCTIONALITY
- Add a new Package() builder for generating packages in various
formats (RPM, MSI, ipkg, targz, tarbz, zip).
- A new AddOption() function to support user-defined command-line flags.
- The {Get,Set}Option() functions now support 'help' and 'random'.
- A new AddMethod() construction environment method and global function
have been added.
- A new $JAVACLASSPATH variable controls the -classpath option.
- A new $JAVASOURCEPATH variable controls the -sourcepath option.
- A new $JAVAVERSION variable can specify what version of Java is being used.
- A new $SWIGOUTDIR variable controls the swig -outdir option.
- A new $SWIGPATH variable specifies a search path for included SWIG files.
New $SWIGINCPREFIX and $SWIGINCSUFFIX variables control $SWIGPATH
expansion on command lines.
CHANGED/ENHANCED EXISTING FUNCTIONALITY
- Add /opt/SUNWspro/bin to the default execution PATH on Solaris.
- The --debug=explain option now reports if a target is being
rebuilt due to AlwaysBuild() being specified.
- Generated config.h files now contain "#define HAVE_{FEATURE} 1"
instad of just "#define HAVE_{FEATURE}".
- The --tree=prune output no longer prints [brackets] around source files.
- The Java() builder can now be passed a list of explicit .java files.
- .java files can now be passed to the Jar() and JavaH() builders, which
will call the Java() builder to generate the intermediate .class files.
- SWIG .i files can now be passed to the Java builders (Java(), Jar(),
JavaH()) to cause intermediate .java files to be generated automatically.
- SCons now expects different, correct anonymous inner class files to be
generated when $JAVAVERSION is set to 1.5 or 1.6.
- The LaTeX scanner now finds dependencies specified as \usepackage{}.
FIXES
- Only expect the Microsoft IDL compiler to emit _p.c and _data.c
files if the /proxy and /dlldata switches are used (respectively).
- Listing multiple projects in Visual Studio 7.[01] solution files
has been fixed, including generating individual project GUIDs instead
of re-using the solution GUID.
- Expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
Visual C/C++ PDB file names has been fixed.
- SCons now correctly locates Visual C/C++ PDB files in build directories.
- Symlinks are now pushed to/retrived from a CacheDir() as actual symlinks.
- SCons no longer generates an error if a #include line happens to match
a directory somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).
- The --debug=time option has been fixed when the -j option is specified
and all files are up to date.
- The use of expansions like ${TARGET.dir} or ${SOURCE.dir} has been fixed
in the following construction variables: $FORTRANMODDIR, $JARCHDIR,
$JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.
- Dependencies on Java files generated by SWIG have been fixed so they
can be detected and built in one pass.
- SCons now detects Java anonymous classes when the next token after the
name is an open parenthesis.
- SWIG has been fixed when used with a BuildDir().
- Tool modules no longer overwrite existing $CFILESUFFIX and $CXXFILESUFFIX
values after a construction environment has been created.
IMPROVEMENTS
- More efficient copying of construction environments.
- Initialization of Java-related builders has been commonized.
- Worker threads are now terminated gracefully when all jobs are finished.
Thanks to Lars Albertsson, Mark Bertoglio, Jean Brouwers, Allan Erskine,
Leanid Nazdrynau, Jan Nijtmans, Gary Oberbrunner, Tilo Prutz, Adam
Simpkins and Sohail Somani for their contributions to this release.