c++boost.gif (8819 bytes)Building Boost Libraries

Read This First!

Boost.Build is currently in preliminary form.  Some features are missing or incomplete. Instructions for accomplishing basic tasks (this page) are rudimentary.  But enough functionality is working well to make providing Boost.Build worthwhile.  The important bits-and-pieces are all there - what is left to do is some of the relatively minor glue to make the system smooth and easy to use.

Don't expect building a full Boost object library for any random compiler to work yet.  If there isn't a jam configuration file for your favorite compiler, consider contributing one. Secondary tasks like copying libraries to installation specific directories are also weak.

Do expect building object libraries for some of the individual Boost libraries like Python and Regex Libraries to show lots of signs of life.

Note that the underlying Jam build engine is mature software, and has been widely used for many years.  The FTJam and Boost specific extensions are well on their way to being stable, and have begun to attract interest and use outside of Boost.

Introduction
Preliminaries
Building Boost Libraries
More on using the tools
Tools available

Introduction

These instructions explain how to accomplish common tasks using Boost.Build, the Boost Build System.

For tasks not covered here, see the full build system documentation.

Preliminaries

Building Boost Libraries

Using your operating system's command line interpreter, execute the following steps.  The sample commands given will work for both UNIX and Windows.

chdir my_boost

jam -ftools/build/allyourbase.jam -sTOOLS="gcc metrowerks"

More on using the tools

The build system's toolsets are designed to work in either of two ways:

  1. The user sets up all of the environment for each toolset he wants to use, in the normal way. For example, for Microsoft VC++, ...vc98/bin is in the path, vcvars32.bat or equivalent has been invoked, etc. For Metrowerks CodeWarrior, cwenv.bat or equivalent has been called and ...Other Metrowerks Tools/Command Line Tools is in the path.

  2. The user doesn't want his environment cluttered with this junk and wants to avoid the many other things done by the vendor's script files. Instead, he or she sets variables which point to the toolset installation directories (possibly in the Jamrules, or a user-setup.jam file invoked by the Jamrules). These variables are used by the build system to locate the tools and invoke the necessary setup. They are described in the comments in each toolset's .jam file.

Tools available

TOOLS Name Description
borland Borland command line compiler tools
como Comeau command line compiler tools
gcc GNU GCC command line compiler tools
gcc-stlport GNU GCC command line compiler tools, using the STLport library
intel-win32 Intel command line compiler tools, in the Win32 environment using the Microsoft library
kcc KAI command line compiler tools
metrowerks Metrowerks CodeWarrior command line compiler tools
msvc Microsoft Visual C++ command line compiler tools
vacpp IBM Visual Age C++ command line compiler tools

Unless otherwise specified, the library is assumed to be the one shipped with the compiler.

Additional tools can be supplied by adding an appropriate xxxx-tools.jam file to the tools/build subdirectory, where xxxx is the name of the tool being added.  If you write an additional toolset file, please submit it to Boost so others may benefit from your work.


Revised 24 September, 2001

© Copyright 2001 Beman Dawes