Boost logo

Boost-Build :

Subject: Re: [Boost-build] Pointing to a Boost tree for bjam
From: Edward Diener (eldiener_at_[hidden])
Date: 2010-11-16 10:24:22


On 11/16/2010 4:15 AM, John Maddock wrote:
>> Is there a better way ?
>
> Yes for sure - take a look at the readme.txt file in the root of the
> sandbox, which reads:
>
> "This directory contains the file "boost-build.jam" which search for a
> Boost install as follows:
>
> * In a directory specified by the --boost=path command line option.
> * In a directory specified by the BOOST environment variable.
> * In the directories ../boost and ../Trunk.
>
> In addition the variables BOOST and BOOST_ROOT are set to point to the
> root of the Boost install, so to refer to other
> Boost libraries and the main Boost headers, your Jamfile should contain
> something like:
>
> import modules ;
>
> local boost-path = [ modules.peek : BOOST ] ;
>
> And then you can refer to a Boost library "foo" as:
>
> $(boost)/libs/foo/build//boost_foo

Should not this be:

$(boost-path)/libs/foo/build//boost_foo

>
> Note that if your project does not specify a Jamroot file, then a
> default one is provided for you,
> and that this file will automatically add $(BOOST)/ to your include path."
>
> In other words the machinery in the root directory of the sandbox will
> take care of almost everything for you - all you need to do is set the
> BOOST environment variable -

OK. But if the sandbox library is then moved under a Boost installation,
does all this machinery continue to work as expected ?

> and then add the local include path (to
> your sandbox headers) to your projects requirements.

No one ( including myself ) ever seems to do this latter with sandbox
libraries. For instance I looked at the type_traits ( yours ) in the
sandbox which I have locally and in the /libs/type_traits/test directory
the Jamfile.v2 has no project requirements.

>
> Couldn't be easier... honest... John ;-)

Sure <g> ! Here are some irritating questions, honestly asked.

Where is the BOOST environment variable documented and what does it
point to ?

Where is the BOOST_ROOT environment variable documented and what does it
point to ?

There is also a BOOST_BUILD_PATH environment variable mentioned in the
Boost Build documentation but there is no mention there what it means,
although I gather from another comment that it points to the Boost Build
v2 subdirectory of some Boost tree.

Shouldn't there be some central place in the Boost documentation where
all the environment variables used by BOOST, which may or may not need
to be set, are actually documented for easy understanding.

I apologize but I continually find the Boost Build system easily the
most arcane piece of software I have ever encountered in my career.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk