Boost Jam is a build tool based on FTJam, which in turn is based on
Perforce Jam. It contains significant improvements made to facilitate
its use in the Boost Build System, but should be backward compatible
with Perforce Jam.

License

BSD-3-Clause

Changelog

* Mon Jul 09 2012 pth@suse.de
- Repackage with bzip2 to have it build on older distributions.
* Mon Mar 12 2012 pth@suse.de
- Update to version 2011.04 from the boost-1.49.0 release.
* Mon Feb 13 2012 coolo@suse.com
- patch license to follow spdx.org standard
* Sat Sep 17 2011 jengelh@medozas.de
- Remove redundant tags/sections from specfile
* Mon Mar 14 2011 pth@suse.de
- Update to 3.1.19.
- Recompress with xz.
* Wed Apr 07 2010 freespacer@gmx.de
- Update to 3.1.18:
* New built-ins, MD5, SPLIT_BY_CHARACTERS, PRECIOUS, PAD, FILE_OPEN,
and UPDATE_NOW.
* Ensure all file descriptors are closed when executing actions complete
on *nix.
* Fix warnings, patch from Mateusz Loskot.
* Add KEEP_GOING var to programatically override the '-q' option.
* Add more parameters, up to 19 from 9, to rule invocations. Patch from
Jonathan Biggar.
* Print failed command output even if the normally quite '-d0' option.
* Build of bjam with vc10, aka Visual Studio 2010.
* More macros for detection of OSPLAT, patch from John W. Bito.
* Add PARALLELISM var to programatically override the '-j' option.
* Tweak doc building to allow for PDF generation of docs.
- clean up the SPEC file
- regenerated patches
* Fri Feb 13 2009 pth@suse.de
- Use -fno-strict-aliasing to make the program run on SLES9.
* Tue Feb 10 2009 pth@suse.de
- Update to 3.1.17:
* Reflect the results of calling bjam from Python.
* Try to work around at least one compiler bug with GCC and variable
aliasing that causes crashes with hashing file cache entries.
* Isolate running of bjam tests to individual bjam instances to prevent
possible spillover errors from one test affecting another test.
Separate the bjam used to run the tests vs. the bjam being tested. And
add automatic re-building of the bjam being tested.
* Fix some possible overrun issues revealed by Fortify build. Thanks to
Steven Robbins for pointing out the issues.
* Handle \n and \r escape sequences.
* Minor edits to remove -Wall warnings.
* Dynamically adjust pwd buffer query size to allow for when PATH_MAX is
default defined instead of being provided by the system C library.
* Minor perf improvement for bjam by replacing hash function with faster
version. Only 1% diff for Boost tree.
* Updated Boost Jam's error location reporting when parsing Jamfiles. Now
it reports the correct error location information when encountering an
unexpected EOF. It now also reports where an invalid lexical token
being read started instead of finished which makes it much easier to
find errors like unclosed quotes or curly braces.
* Removed the -xarch=generic architecture from build.jam as this option is
unknown to the Sun compilers on Linux.
* Fixed a bug with T_FATE_ISTMP getting reported as T_FATE_ISTMP &
T_FATE_NEEDTMP at the same time due to a missing break in a switch
statement.
* Fixed a Boost Jam bug causing it to sometimes trigger actions depending
on targets that have not been built yet.
* Added missing documentation for Boost Jam's :T variable expansion
modifier which converts all back-slashes ('\') to forward slashed ('/').
* Corrected a potential memory leak in Boost Jam's builtin_shell()
function that would appear should Boost Jam ever start to release its
allocated string objects.
* Made all Boost Jam's ECHO commands automatically flush the standard
output to make that output more promptly displayed to the user.
* Made Boost Jam tests quote their bjam executable name when calling it
allowing those executables to contain spaces in their name and/or path.
* Change execunix.c to always use fork() instead of vfork() on the Mac.
This works around known issues with bjam on PPC under Tiger and a
problem reported by Rene with bjam on x86 under Leopard.
* Corrected a bug in Boost Jam's base Jambase script causing it to trim
the error message displayed when its boost-build rule gets called
multiple times.
* When importing from Python into an module with empty string as name,
import into root module.
* Patch for the NORMALIZE_PATH builtin Boost Jam rule as well as an
appropriate update for the path.jam Boost Build module where that rule
was being used to implement path join and related operations.
* Fixed a bug causing Boost Jam not to handle target file names specified
as both short and long file names correctly.
* Relaxed test, ignoring case of drive letter.
* Implemented a patch contributed by Igor Nazarenko reimplementing the
list_sort() function to use a C qsort() function instead of a
hand-crafted merge-sort algorithm. Makes some list sortings (e.g.
1,2,1,2,1,2,1,2, ...) extremely faster, in turn significantly speeding
up some project builds.
* Solved the problem with bjam going into an active wait state, hogging up
processor resources, when waiting for one of its child processes to
terminate while not all of its available child process slots are being
used.
* Solved a race condition between bjam's output reading/child process
termination detection and the child process's output
generation/termination which could have caused bjam not to collect the
terminated process's final output.
* Code reformatting and cleanups.
* Implement ISFILE built-in.
* Fri Sep 05 2008 pth@suse.de
- Update to 3.1.16:
* Plug memory leak when closing out actions.
* Various improvements to __TIMINGRULE_ and __ACTIONRULE_ target
variable hooks.
* Change JAMDATE to use common ISO date format.
* Add test for result status values of simple actions, i.e.
empty actions.
* Fix buffer overrun bug in expanding @() subexpressions.
* Check empty string invariants, instead of assuming all strings
are allocated. And reset strings when they are freed.
* Add OSPLAT=PARISC for HP-UX PA-RISC. -- Boris G.
* Make quietly actions really quiet by not printing the command
output. The output for the quietly actions is still available
through __ACTIONRULE_.
* When setting OSPLAT, check __ia64 macro.
* Get the unix timing working correctly.
* Add -fno-strict-aliasing to compilation with gcc. Which works
around GCC-4.2 crash problems.
* Increased support for Python integration.
* Allow specifying options with quotes, i.e. --with-python=xyz,
to work around the CMD shell using = as an argument separator.
* Add values of variables specified with -s to .EVNRION module,
so that we can override environment on command line.
* Make NORMALIZE_PATH convert to /.
* Fri Jul 27 2007 pth@suse.de
- Directly pass CFLAGS and RPM_OPTFLAGS to jam0 when bootstrapping
(obsoletes the fix from Daniel Schepler) and pass
- fno-strict-aliasing to gcc to fix the bjam segfault.
- Build optimized binary but don't strip it.