Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-06-18 18:19:09

"Hendrik Schober" <boost_at_[hidden]> writes:

> Hi,
> I voluteered to look at how to make the "Getting Started"
> section of the homepage a bit easier to understand and
> follow. (Reminder: I failed to install boost on Windows due
> to stupid errors on my side which I claimed could have been
> avoided with an easier guide.)
> My time to do this is very limited, which is why this takes
> so long. Sorry, but I can't help it.
> I attached a zipped archive of what I have so far. (Unpack
> onto the "more" folder.) I threw this at some fellow workers
> being used to work with Windows. This gave some feedback of
> where I failed. Also, Dave has already put a lot of work
> into reviewing it and this brought many improvements.
> As I still don't understand Boost.Build (I consider it very
> important to remain as ignorant as the targeted audience
> while working on this guide. :o> ), I'd like this to first
> be reviewed here instead of just checking it in.
> One questions that I still have: When I tried to install boost,
> I had no idea what a toolset is, which acounts for some of my
> problems. My idea of this is still a bit foggy, but I think a
> definition at first use is in order.
> So what is a toolset?


Well in the real world it's a set of related executables and
support files (like libraries, headers, etc.) that is designed to work
cooperatively in executing steps of a build process. Thus you might
have a toolset consisting of a c/c++ compiler and a linker that
creates executables and dynamic libraries and an archiver that creates
static libraries, and a set of standard library headers and runtime
libraries. Another toolset might be the TeX/LaTeX suite of tools
(including e.g. pdftex) and the associated TeX libraries for
generating tables, doing particular layout styles, supporting unicode,

In Boost.Build there is a toolset abstraction that is designed to help
the user:

 a. Tell Boost.Build how the toolset has been installed. In BBv1 it is
    done by setting variables in the environment or on the bjam
    command-line with -sVARIABLENAME=..., as documented on the pages
    for the individual toolsets. In BBv2 it's done in the
    user-config.jam and/or site-config.jam file.

 b. Configure the way the actual toolset is used by Boost.Build (same
    methods as above).

 c. Control options for building a target without knowing the
    toolset's specific command-line usage. It does that by
    translating build properties like <runtime-link>static into
    command-line flags and options.

You should be able to use this text verbatim (or nearly so) in your


Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at