Boost logo

Boost-Build :

From: Juergen Hunold (hunold_at_[hidden])
Date: 2006-04-14 10:54:25


Hi Rene !

Sorry, if I messed up the threading, I hit delete too fast and had to
recover your mail via the list archive ;-((

On Friday 14 April 2006 13:49, Rene Reviera wrote:
> Juergen Hunold wrote:
> > Hi !
> >
> > the current V2 Jamfile.v2 does not have builtin support for
> > V1-style ALL_LOCATE_TARGET.
> > I'm forced to due "out-of-source-tree" builds because boost
> > resides on a NFS share and it building to a NFS share is a PITA.
> > The attached patch tries to emulate the old behaviour.
> > Comments ?
>
> Please don't use environment variables for configuration. One of the
> goals of BBv2 is to not rely on the fragile environment for such
> things.

Understood. I'm not fond of environment variables myself.

> Please use a command line option instead, like
> "--build-dir=...".

Well, doing this on _every_ bjam invocation screams for trouble.

> And there's no point in creating a subdir in the
> indicated directory the user is will end up creating a separate one
> anyway. And this makes it functionally equivalent to what BBv1 does.

Well, that was my intention ;-))

I think it is time to explain what I try to accomplish:

- I have my own sources, which use boost ( mostly header only, except
Boost.Test at the moment),
- I want to compile my sources out-of-source to some directory (say
$HOME/build/my_project for example.)
- I have boost on NFS.
- I want _all_ boost libraries compiled to another local directory. (sax
$HOME/build/boost_BOOST_VERSION).

I don't want an additional compile time switch people have to remember
and type each time.
I just want to type "bjam" and be done. The tricky thing is that V2 will
automatically build all needed boost libraries if they are not up to
date. So even if I specify --build-dir=$HOME/build/my_project for my
own sources, how does bjam know where to put the boost object and
library files ? Right now, they end up in $BOOST_ROOT/bin.v2 , which in
my case will be on NFS and by default not writable by me...

ALL_LOCATE_TARGET did solve this in V1, if I remember correctly.
So its an environment variable or the build-location must be
configurable in "user-config.jam" and/or "site-config.jam".

And if I specify a "global" target directory for all output, then V2 has
to create a subfolder holding the boost objects/libraries or do
something clever I can't think of at the moment...

So I think I have to try and understand how the configuration files work
and how to get this desired behaviour in.

Yours,

Jürgen

-- 
* Dipl.-Math. Jürgen Hunold  ! Ingenieurgesellschaft für 
* voice: ++49 511 262926 57  ! Verkehrs- und Eisenbahnwesen mbH  
* fax  : ++49 511 262926 99  ! Lister Straße 15
* hunold_at_[hidden]          ! www.ive-mbh.de

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