Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-01-05 19:57:07


----- Original Message -----
From: "Douglas Gregor" <gregod_at_[hidden]>

> It seems that a command like this should work:
>
> jam -sALL_LOCATE_TARGET=/projects/boost-binaries -sTOP=/projects/boost
> -sJAMFILE=/projects/boost/Jamfile

Hi Doug,

It does seem as though something like that should work, doesn't it? It
wasn't in the original design of the system, though. There's no reason you
should need to set TOP, though, since the Jamfile itself declares its
relationship to TOP via the project-root or subproject rule.

> However, this is not the case because $(TOP) doesn't seem to influence the
> search for source files at all. I boiled it down to the following problem:
> gTOP is never actually set

I think that's because you're setting TOP on the command-line. The line in
the SubDir rule that reads:

    if ! $($(<[1]))

is what controls it: since the first element of SubDir's first argument is
always TOP, the body of this if statement is never entered ($(<[1]) is TOP,
so $($(<[1])) is $(TOP)). Getting gTOP_TOKENS set properly depends on TOP
not having been set the first time SubDir is called.

> , so when we look for search paths in subincludes,
> there is no value for $(gTOP)_TOKENS, which is needed to build the search
> directory. Below is a short patch to allyourbase.jam (the version from
CVS,
> updated today) that fixes the problem, although I'm sure there are better
> ways to go about it (Jam experts, please?)

Based on the above, I don't think your fix is quite right. I'm not sure that
everything in the Jam code will account properly for an explicitly-specified
Jamfile out-of-the-box, but you should probably try again without setting
TOP in the command-line.

-Dave


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