JamPlus is a very fast and 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. It is regularly used to parallelize the builds of massive code or data sets.
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:
- Multiplatform: Binaries are provided for Windows, Linux, and Mac OS X.
- Compiler support: Out of box compiler support for Visual C++ 201x/200x/6, GCC, and MinGW. Easy to add new compilers.
- Platform targets: Platform modules are provided for building for Windows, Linux, macOS, iOS, and Android targets. Additionally, an Xbox 360 console platform is provided. If the machine has iOS Build Environment for Windows installed (see http://www.pmbaty.com/iosbuildenv/), then iOS builds can be made on a Windows Boot Camp partition.
- Workspace/Project Generator: Output project files for the Visual Studio IDE, Xcode, and CodeBlocks.
- Multiple Passes: Run multiple internal passes, collecting unknown dependencies, and execute 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.
- Checksum support: Flip a flag, and JamPlus will use the checksums of files to detect change instead of timestamps.
JamPlus may be downloaded from the Files tab above.
The JamPlus source code is available in Git from http://github.com/jamplus/jamplus/tree/master. Clone it using:
git clone git://github.com/jamplus/jamplus.git
Find all available documentation at http://jamplus.org/git/jamplus/docs/html/index.html.
A list of real-world projects converted to use JamPlus can be found on the ExampleProjects page.