|
Boost-Build : |
Subject: Re: [Boost-build] What does bjam -a mean by "everything"?
From: Anthony Foglia (AFoglia_at_[hidden])
Date: 2009-06-08 16:00:04
Vladimir Prus wrote:
> Can you please provide a minimal example reproducing this problem,
> as an archive file of some popular format?
Here's a (near-)minimal example. The source code is minimized. I've
added a simple executable in projects/ that can be compiled that uses
everything (albeit indirectly). I've only eliminated stuff from the
jamfiles that I'm sure isn't responsible, but left some others, in case
that's important.
It definitely looks like the <source>/proj-libs/utilities//utilities
line in the rule for lib/raw//raw is the trigger. Commenting that out
means bjam -a lib/tools only rebuilds tools.
Also, if I comment it out and put /proj-libs/utilities//utilities
explicitly in the list of sources for lib/tools//tools, bjam -a
lib/tools only rebuilds tools. So I guess this is either a bug, or the
documentation needs to clarified, because the <source>X feature isn't
having "the same effect on building a target as putting X in the list of
sources."
If you switch into the directory and run
$ bjam projects/bjam_a_example
to compile everything. Then
$ bjam -a lib/tools
will rebuild tools and utilities, but not the other libraries.
I'm using the version of boost build that came with ubuntu intrepid:
$ bjam --version
Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.16
-- Anthony Foglia Princeton Consultants (609) 987-8787 x233
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