Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2005-09-20 11:35:28

Most of this looks good to me, because it is basically unchanged from
my last set of edits. Just a few notes...

> Chapter 22. Installation
> This section describes how to install Boost.Build from a released
> Boost source distribution or CVS image. ^[2] All paths are given
> relative to the Boost.Build v2 root directory, which is located in the
> tools/build/v2 subdirectory of a full Boost distribution. ^[3]

Replace the part after "which is" with:

the top directory of a separate Boost.Build v2 installation or
the tools/build/v2 subdirectory of a full Boost libraries source
> 1. Boost.Build uses Boost.Jam, an extension of the Perforce Jam
> portable make replacement. The recommended way to get Boost.Jam is
> to download a prebuilt executable from SourceForge. If a prebuilt
> executable is not provided for your platform or you are using
> Boost's sources in an unreleased state, it may be necessary to
> build bjam from sources included in the Boost source tree.

That last sentence should be broken into a separate paragraph under
this same numbered item:

If a prebuilt executable is not provided for your platform, you
will have to build bjam from sources included in the Boost
source tree. You may also need to rebuild bjam if you are using
the Boost libraries' sources in an unreleased state, since the
build instructions may depend on bjam features that are newer
than any prebuilt executable. Instructions for rebuilding bjam
can be found at

> 2. To install Boost.Jam, copy the executable, called bjam or bjam.exe
> to a location accessible in your PATH. Go to the
> Boost.Build root directory and run bjam --version. You should see:
> Boost.Build V2 (Milestone N)
> Boost.Jam xx.xx.xx
> where N is the version of Boost.Build you're using.
> 3. Configure Boost.Build to recognize the build resources (such as
> compilers and libraries) you have installed on your system. Open
> the user-config.jam file in the Boost.Build root directory and
> follow the instructions there to describe your toolsets and
> libraries, and, if necessary, where they are located.
> 4. You should now be able to go to the example/hello/ directory and
> run bjam there. A simple application will be built. You can also
> play with other projects in the example/ directory.
> If you are using Boost's CVS state, be sure to rebuild bjam even if
> you have a previous version. The CVS version of Boost.Build requires
> the CVS version of Boost.Jam.
> When bjam is invoked, it always needs to be able to find the
> Boost.Build root directory, where the interpreted source code of
> Boost.Build is located. There are two ways to tell bjam about the root
> directory:
> ● Set the environment variable BOOST_BUILD_PATH to the absolute path
> of the Boost.Build root directory.
> ● At the root directory of your project
> or in any of its parent directories, create a file called
italicize this
> boost-build.jam, with a single
> line:
> boost-build /path/to/ ;

We recommend this approach: once you've set up a boost-build.jam
file in a parent directory of the one in which you do most of
your development, it should almost never be necessary to think
about it again, and you won't be cluttering your environment
with settings specific to a single tool.

Then consider swapping the two bullets.

> N.B. When bjam is invoked from anywhere in the Boost directory tree
> other than the Boost.Build root and its subdirectories, Boost.Build v1
> is used by default. To override the default and use Boost.Build v2,
> you have to add the --v2 command line option to all bjam invocations.
> ━━━━━━━━━━━━
> ^[2] Note that packages prepared for Unix/Linux systems usually make
> their own choices about where to put things and even which parts of
> Boost to include. When we say “released source distribution” we mean a
> distribution of Boost as released on its SourceForge project page.
> ^[3] The Boost.Build subset of boost is also distributed separately,
strike this--------^^^^
> for those who are only interested in getting a build tool. The
> top-level directory of a Boost.Build distribution contains all the
> subdirectories of the tools/build/v2 subdirectory from a full Boost
> distribution, so it is itself a valid Boost.Build root directory. It
> also contains the tools/build/jam_src subdirectory of a full Boost
> distribution, so you can rebuild Boost.Jam from source.

Dave Abrahams
Boost Consulting

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at