Boost logo

Boost Users :

From: Edward Diener (eddielee_at_[hidden])
Date: 2005-07-20 14:09:46

Rene Rivera wrote:
> Edward Diener wrote:
> First off... This documentation is being worked on. Thankfully not by
> me, as I make a bad documenter in this case since I wrote the install
> support.

The general install instructions are very good. It is just this area of
explaining where everything goes that I find poor, as if it does not matter to
the end-user. It does matter since the end-user may well need to know where the
build of Boost for a particular compiler ends up putting files.

>>The documentation for building Boost states that one can use 'install', 'stage',
>>or nothing on the bjam command line. But it does not explain the difference
>>between these options other than:
>>"none Only builds the Boost libraries. This lets you do the first part of what
>>the install action normally does without copying the built libraries to the
>>install location.
>>install Builds and installs Boost libraries and headers.
>>stage Builds the Boost libraries and copies them into a common directory."
>>This tells me almost nothing. In the 'none' explanation, what does "copying the
>>built libraries to the install location" mean when the install location is never
>>specified ?
> It's the standard, by autoconf POV, definition, and is the location
> specified by "--prefix=*" option.

With all due respect to the Unix/Linux autoconf, I do not know how it works and
I would conjecture that many programmers, especially Windows and Mac
programmers, have no idea what it is. I do not specify a "--prefix=" on the
command line. What is the default, and should not this be specified in the doc ?

>> In the 'install' explanation, what does "installs Boost libraries
>>and headers" mean and why do headers need to be installed ?
> It mean it will copy the built libraries, and all the headers for all
> the Boost libraries. Especially important as most of the Boost libraries
> are header only.

Are you saying that it will copy all the headers for the libraries which are
built ? To where does it copy the headers, and to where does it copy the
libraries being built when 'install' is specified ?

Why would it copy the headers since the normal way to use Boost headers, whether
for a library being built or for a library which is completely header-based, is
to specify #include <boost\someheader.h> and point to the root directory of the
Boost installation as an include path. If it copies the headers somewhere else,
then another root directory for the include path must be specified, for built
libraries, in front of the root directory for Boost header-only libraries, thus
complicating what was previously an easy and effective way of bringing in the
correct Boost headers. Why would the system for building boost libraries for a
non-header based library ever want to complicate the original way of bringing in
Boost header files.

>>In the 'stage'
>>explanation, what is the "common directory" to which Boost libraries are copied
> It's the directory specified by "--stagedir=*" option, which defaults to
> "./stage". I.e. a "stage" directory where you unpacked the Boost sources.

Does this mean that each product gets its own "./stage" subdirectory or they all
get a common one ? This I begin to understand but this information should be
specified in the doc, and it should be specified what the default --stagedir is
also at the same time.

>>In general where exactly are resulting libraries put for each of these options
>>and are header files moved anywhere also ?
> See above :-)

See my further comments and questions.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at