Perforce Jam


Perforce Jam was an open-source build system developed by Christopher Seiwald of Perforce Software. It was used as a replacement for make. Its primary feature was its ability to express build patterns in an imperative language which supported structured namespaces and simple lists. Jam could be used with autoconf, although it was often not necessary because of Jam's portability features. Perforce Jam ran on Unix, OpenVMS, Windows NT, Mac OS, and BeOS. It was also possible to configure it to work on Windows 9x using MinGW or Cygwin.
The company announced that version 2.6 released in August 2014 was the last Perforce Jam release.

Popular Variants of Jam

FT Jam

is a popular variant and fully backward compatible, although its features are being integrated into Perforce Jam. Users of FT Jam often refer to Perforce Jam as "Classic Jam".

Boost.Jam

The Boost C++ Libraries is using a Jam variant called "Boost.Jam". It is incompatible with other variants, and is not a standalone tool, but part of .

Haiku Jam

Haiku Jam is a custom fork of Perforce's Jam used by Haiku.

JamPlus

JamPlus adds new features to Jam and integrates a number of patches from the Jamming mailing list and the Perforce Public Depot.

Jambase

Jam comes with a set of rules called "Jambase", which define rules for building various things. Jambase is "smart" and knows, for instance, that if a header file is modified, all files that include it must be rebuilt. Unlike with makefiles, the writer of the Jamfile need not manage these dependencies, only list the source code files themselves. Jambase is usually compiled into the executable file itself.
Jambase is notorious among Jam users for its bugs and the infrequency with which fixes are integrated into the distribution, though few bugs are critical. There are some packages such as AutoJam designed to solve some of the problems of Jambase.

License

Jam was open-source.