# 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

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

- Download Boost, and unpack the full directory structure into some root directory.
- Download FTJam, and install the binary executable where it will be found when invoked from the command line.

> - For easy-to-build source files, see the FTJam SourceForge site.
> - For Win32 systems, download a pre-build executable.

- Set any environmental variables required to run your compiler and related tools from the command line. Verify your command line compiler is working if you don't use it regularly.

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

- Change to the Boost root directory. (The directory you unpacked the distribution into. Among others, it contain the file c++boost.gif, subdirectories boost, libs, more, etc.)

> > `chdir my_boost`

- Build the Boost libraries for your tools. The example is for the GNU and Metrowerks compilers.

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

## Tools

TOOLS Name | Description
`borland` | Borland command line compiler tools
`gcc` | GNU GCC command line compiler tools
`gcc-stlport` | GNU GCC command line compiler tools, using the STLport 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..

Revised 19 August, 2001

Written by Beman Dawes