Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-06-18 00:53:39


Hi Kirill,

> --- In jamboost_at_[hidden], Vladimir Prus <ghost_at_c...> wrote:
> > The first preview of the next milestone release is available at
>
> Works fine. However there are some bogus boost-build.jam files lying
> around, still pointing to 'new' (not 'kernel') dir. Namely one in the
> root of boost-build and the other in 'new' subfolder, maybe there are
> more.

Thanks for spotting this. Grepping though all 'boost-build.jam' files says
it's the only two places.

>
> Also examples still use old target ids.

Hmm.. I'm 100% sure I did update examples. Wait a minute: are you using
tarball I'm posted or CVS? If the latter, this explains everything. Anonymous
CVS access uses backup server, which is about 24 hours older.
(discovered this, to a great surprise, only yesterday).

> I've got couple of questions, not really related to this milestone
> though.
>
> 1. In hello example we've got an example of nifty symlink rule. It
> works well, however if you do 'bjam release' both debug and relase
> version would be compiled.
> Attempt to do 'bjam hello_release' fails with

Right. To achive the desired effect you should say....

bjam symlink#1

... which means there's no reasonable way to achieve it. So, the problem is
that

symlink hello_release : hello/<variant>release ;

creates main target "hello_release" from the user point of view, but
Boost.Build does something different. I think we should fix this. Rene,
symlink was implemented by you, what do you think.

(Also note that new target-id allows
symlink links/hello_release : hello/<variant>release ;

to declare main target "linkgs/hello_release", which will even be usable
)

> 2. site-config, user-config.
> I need to specify certain external libraries in site-config. There is
> no other way (the library in question is ATLAS and directory name with
> binaries differ from system to system).
> So I thought Ok, I will use site-config.jam for that. It's a pity that
> I can't put it into my project root, I end up trying to modify one in
> boost_build_path, but even there I had no luck.

That's right to the spot. In M3, Boost.Build had absolutely no possibility for
such thing: target could be only declared in Jamfile.

In M4, every module can decide to act as project. Here's what I've just added
to my user-config (I'm about to add this to docs as well)

import project ;
project.initialize $(__name__) ;
project user-config ;
lib foobar : : <name>foobar ;

The second line allows this module to act as project.
The third line gives id to this project ---it really has no location and
cannot be used otherwise.
The fourth line just declares a target. After that, I can write

exe hello : hello.cpp /user-config//foobar ;

Is this what you're after?

- Volodya

 


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