Perforce Jam
Original author(s) | Christopher Seiwald |
---|---|
Stable release | 2.6 / August 7, 2014 |
Written in | C |
Operating system | Cross-platform |
Type | Software development tools |
License | open-source; see below |
Website |
www |
Perforce Jam is an open-source build system developed by Christopher Seiwald of Perforce Software. It can be used as a replacement for make. Its primary feature is its ability to express build patterns in an imperative language which supports structured namespaces (similar to Pascal records) and simple lists. Jam can be used with autoconf, although it is often not necessary because of Jam's portability features. Perforce Jam runs on Unix (including many clones), OpenVMS, Windows NT (including Windows 2000 and Windows XP), Mac OS, and BeOS. It can possibly be configured to work on Windows 9x using MinGW or Cygwin.
Popular Variants of Jam
FT 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" (or "BJam"). It is incompatible with other variants, and is not a standalone tool, but part of Boost.Build.
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 is open-source under the following license:
License is hereby granted to use this software and distribute itfreely, as long as this copyright notice is retained and modifications are clearly marked. ALL WARRANTIES ARE HEREBY DISCLAIMED.
See also
- Boost — includes a package called Boost.Build, which uses a special version of Jam called Boost.Jam
- Perforce — the main product of Perforce Software, a commercial, proprietary revision control system
External links
- Perforce Software
- Perforce Jam
- FT Jam
- Jam Guide
- Haiku Jam Guide
- AutoJam, a set of rules for the Jam build tool
- Boost.Build, a build system originally based on Jam
- JamPlus