lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



I'd like to announce the 3.0 prerelease release of JamPlus [1], a build system I have been maintaining and updating for the past 13-ish years. I've mentioned my usage of it on this mailing list before, but I thought I should make it a bit more official, especially since JamPlus has Lua support out of box.


So, a description is in order…


JamPlus is a very fast and powerful code and data build system built on the code base of the original Perforce version of Jam. JamPlus is used to efficiently parallelize the builds of massive code and data sets at large corporations, small companies, and individual projects. JamPlus drives the long-running LuaPlus [2] distribution, a project that builds a collection of Lua versions and modules across Windows, macOS, and Linux.


Snapshot binaries are on the JamPlus website [3].


Documentation is also available on the JamPlus website [4].


A super quick usage overview of JamPlus is found in the Quick Start Guide [5a] [5b].


There is an example [6] of how you might build Lua 5.3 as a shared library and LuaSocket.


A sampling of the features in the JamPlus distribution follow:


- Multiplatform: Binaries can be easily bootstrapped for Windows, Linux, and Mac OS X.

- Compiler support: Out of box compiler support for Visual C++ 201x/200x/6, GCC, Clang, and MinGW.

- Platform targets: Platform modules are provided for building for Windows, Linux, macOS, iOS, and Android targets. Additionally, an Xbox 360 console platform is provided as a sample. If the machine has iOS Build Environment for Windows installed (see, then iOS builds can be made on a Windows Boot Camp partition.

- Workspace/Project Generator: Output project files for the Visual Studio IDE and Xcode.

- 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 file 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.

- Batch Compilation: JamPlus is able to batch files to tools that support it, such as the Visual C++ compiler.

- Checksum support: Enable a flag, and JamPlus will use the checksums of files to detect change instead of timestamps.

- Lua support: Either a partial build description or the entire build description can be written in Lua.


If I can be of any assistance, please email me at


Take care everyone.