## Appendix A. Boost.Jam Documentation

## Introduction

Boost.Jam (BJam) is a build tool based on FTJam, which in turn is based on Perforce Jam. It contains significant improvements made to facilitate its use in the Boost Build System, but should be backward compatible with Perforce Jam.

This is version 3.1.16 of BJam and is based on version 2.4 of Jam/MR:

    +\
    +\  Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
    \+
    This is Release 2.4 of Jam/MR, a make-like program.
    License is hereby granted to use this software and distribute it
    freely, as long as this copyright notice is retained and modifications
    are clearly marked.
    ALL WARRANTIES ARE HEREBY DISCLAIMED.

### Features

Jam is a make(1) replacement that makes building simple things simple and building complicated things manageable.

Jam's language is expressive, making Jamfiles (c.f. Makefiles) compact.

Jam handles header file dependencies automatically and on-the-fly.

Jam is very portable: it runs on UNIX, VMS, Mac, and NT. Most Jamfiles themselves are portable.

Jam is unintrusive: it is small, it has negligible CPU overhead, and it doesn't create any of its own funny files (c.f. Odin, nmake, SunOS make).

Jam can build large projects spread across many directories in one pass, without recursing, tracking the relationships among all files. Jam can do this with multiple, concurrent processes.

Jam isn't under the blinkin GNU copyright, so you can incorporate it into commercial products.