Introduction
JamPlus is a powerful code and data build system built on the code base of the original Perforce version of Jam, a software build tool similar to make.
JamPlus adds new features to Jam and integrates a number of patches from the Jamming mailing list and the Perforce Public Depot.
A sampling of the features in the JamPlus distribution follows:
- Muliplatform: Binaries are provided for Windows, Linux, and Mac OS X.
- Compiler support: Out of box compiler support for Visual C++ 6/200x/2010, GCC, and MinGW. New compilers are easy to add.
- Platform targets: Platform modules are provided for building Windows, Xbox 360, Linux, Mac OS X, iPhone, and iPad targets. Additional platforms are also easy to add.
- Workspace/Project Generator: Output project files for the Visual Studio IDE, Xcode, and CodeBlocks.
- Multiple Passes: Ability to run multiple internal passes, collecting unknown dependencies, and executing them in a future pass.
- Network Cache: Any to-be-built target can be retrieved from one or more shared network caches of prebuilt targets.
- Command-line Dependencies: When the 'command line' of a target (not necessarily the real command line) changes, the target is rebuilt.
- Powerful New Variable Expansion: Convert between slash types, expand literal text, include or exclude list components, recursive file globs, and more.
- Dependency (Header) Cache: When dependency information is scanned, it is cached for the next build, offering a huge performance boost.
- Batch Compilation: JamPlus is able to batch files to tools that support it, such as the Visual C++ compiler.
Contents
Authors
Jam's author is Christopher Seiwald (seiwald@perforce.com). Documentation is provided by Perforce Software, Inc.
JamPlus's primary maintainer is Joshua Jensen (jjensen@workspacewhiz.com).
Note: Much of this documentation is taken verbatim from the jam.html file which ships with the Perforce Jam build.
Patches come from the Jam mailing list and Perforce Public Depot, with the primary authors being Alen Ladavac, Craig McPheeters, and Matt Armstrong.