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.
actually 2.5rc1. From the changelog:
* Jam 2.5 is merely Jam 2.5rc3 of April 2003 with the rc3
moniker removed.)
* Using SubDir to include a subpart of an SubDir tree now works.
Previously, you could only include the root of another SubDir
tree. This example includes the ../server/support/Jamfile,
without getting confused as to the current directory:
SubDir ALL src builds ;
SubInclude ALL src server support ;
* Undocumented support for SUBDIRRULES, user-provided rules to
invoke at the end of the SubDir rule, and SUBDIRRESET, SUBDIR
variables to reset (like SUBDIRC++FLAGS, SUBDIRHDRS, etc) for
each new SubDir.
* Remove NT FQuote rule, as, \" is required to pass quotes on the
command line.
* Remove temp .bat files created on NT. They used to all have the
same name and get reused, but with 2.5 the names were salted
with the PID and they would litter $TEMP. Now they get removed
after being used.
Set DIST_SUBDIR since Perforce seems to make a habit of updating
distfiles without changing filenames. (This occurrence spotted by
Lars Nordlund.) The zip file no longer extracts into a subdir; set
WRKSRC accordingly.
Bump PKGREVISION.
* 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).