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:
- Multiplatform: 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. Easy to add new compilers.
- 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: JamPlus can output project files for the Visual Studio IDE, Xcode, and CodeBlocks.
- Multiple Passes: The 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.
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.
Go to the Detailed instructions for building JamPlus.
A list of real-world projects converted to use JamPlus can be found on the ExampleProjects page.