This switches over from the perforce jam distribution to the jam
distribution from the FreeType project. This is fully backwards compatible
with the perforce distribution.
The FreeType jam distribution ships with a GNU configure script.
Other differences are added support for shared libraries, macro expansion,
more flexible command line processing and a fix to dependency calculation.
This closes PR pkg/37285 and should make devel/jam build on NetBSD 4.0.
* The 'return' statement now actually returns, and there are now
break & continue statements for for & while loops.
* MkDir now grists directories with 'dir', so that directory targets
can be distinguished from other targets.
* SubDir now allows multiple overlapping roots (top level directories):
the first SubDir of a new root uses the CWD of jam to set that
root; subsquent SubDirs use the current SUBDIR to set the new
root. New FSubDirPath to compute a path (given SubDir arguments)
and SubRules to include another root's Jamrules. Jamrules only
included if present; no error issued if no Jamrules file.
* $(RMDIR) has been defined for NT and defaulted to $(RM) everwhere
else. Not much tested. For Michael Champigny.
* GenFile actions (on UNIX) now put . in the PATH for the execution
of the command, so that (at least) when jam builds itself .
does not need to be in the global path. It is the rare case
where a target bound in the current directory can't be used
directly, so we fudge it by setting PATH.
* The whole /MR of Jam's name has been dropped. It was intended
to avoid trademark infringement of JYACC's JAM, but as far as
we can tell (a) it wasn't enough to avoid infringement and (b)
the trademark has lapsed anyhow.
* If header dependencies cause an object to be recompiled and the
source file is a temporary, the temporary is now reconstructed.
Previously, headers weren't considered when deciding when to
reconstruct a temporary.
* -d has been reworked to make it easier to display more useful
tracing information separate from the debugging gunk:
-da - show all actions (formerly -d2)
-dc - show 'causes' for rebuilding (new output)
-dd - show dependencies (new output)
-dm - show make graph (aka -d3)
-dx - show executable text (formerly -d2)
-dd is new, and more display options are anticipated.
-n now implies -dax.
The message "...using xxx..." now only shows up with -da.
* Several bug and portability fixes.
pkgsrc changes:
* Use the .zip distfile instead of the .tar to save space.
* Iterate with ${f} rather than ${file} to placate pkglint.
Approved by jlam and garbled.
Jam/MR is a build utility like make(1). It has its own expressive
language which allows for portable Jamfiles capable of building
large projects with multiple concurrent processes (although by
default it uses a single process).