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.

Download JamPlus

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.

Building JamPlus

Go to the Detailed instructions for building JamPlus.

Example Projects

A list of real-world projects converted to use JamPlus can be found on the ExampleProjects page.