Boost logo

Boost :

Subject: Re: [boost] Bjam outside Boost tree
From: Jean-Louis Leroy (jl_at_[hidden])
Date: 2009-10-06 12:44:20


After more hours on this I still cannot make it work.

I have tried again from scratch. I have unpacked the 1.40 distro in
\temp and built boost.filesystem from within the boost tree (it's the
project I used as a template for rdb). It builds ok. Then I copied
libs\filesystem to \temp and created an empty Jamroot and a
boost-build.jam in its root dir, containing:

     boost-build C:/TEMP/boost_1_40_0/tools/build/v2 ;

This is coherent with the post I found on the internet, with Steve's
recommandations, and
http://www.boost.org/doc/libs/1_40_0/doc/html/bbv2/reference.html

However when I try bjam from \temp\filesystem\build I get the message:
rule boost-install unknown in module Jamfile</C:/TEMP/filesystem/build>

I put my boost-build.jam at the top of the boost tree and tried again
building from inside the tree with `bjam -d+5`. It built ok and I could
see in the log that my boost-build.jam was picked:

jambase.c:72:>> local boost-build-files =
C:\TEMP\boost_1_40_0\boost-build.jam
jambase.c:75:>> set .boost-build-file = C:\TEMP\boost_1_40_0\boost-build.jam

...so it looks like the content is correct. Then I sought where the
boost-install rule pops into existence. This seems to happen here:

C:/TEMP/boost_1_40_0/tools/build/v2/kernel\modules.jam:170:>>>>|>>>>|>>>>|>>>>|>>>>
local rules = using import project constant path-constant use-project
build-project explicit glob glob-tree conditional option
handle-static-runtime libraries-to-install tag make-unversioned-links
boost-install

Examining `modules.jam` suggests that a bunch of build rules are
dynamically extracted from all the libs in the tree and boost-install is
one of them.

So at this point my understanding is that there are two things going on:
getting bjam to work - it seems to be dynamic in part, it locates and
loads "a" build system ; Steve told me how to make that part work. The
second thing is to use it to build a /boost lib/ with its dependencies
(in my case the test harness) from elsewhere. In fact my initial post
should have been entitled "Boost lib outside Boost tree", and not merely
"Bjam outside...".

Is this picture correct? Does any of the lib authors ever build from
outside a boost tree?

J-L


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk