Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2002-07-01 08:34:17


David Abrahams wrote:

> > 2. Introduce new "TOUCH" builtin and apply it to the "all" target is
>
> there
>
> > are no explicit targets in the command line.
>
> Isn't that called "ALWAYS"?

No. ALWAYS makes a target considered always out-of-date. Specically, it sets
T_FLAG_TOUCHED on that targets --- i.e. has the same effects as "-t " command
line option. If you specify targets in the command line, then jam would
traverse the dependency graph starting from the named targets. It would do
nothing about ALWAYS targets not found during the traversal.

> > 3. Introduce new variable, say "TARGETS_TO_UPDATE". Initialize them from
> > command line as usual. When running updating actions, consult this
>
> variable.
>
> > This way, Jam code will be able to modify the set of target that should
>
> be
>
> > updated.
> >
> >
> > I think approach 3 is the most reasonable. All others looks more like
>
> ugly
>
> > workarounds to me. What do you think?
>
> I hate adding new global variables. Can we do it with ALWAYS and/or
> TOUCH/UNTOUCH rules? If that gets too messy, I agree we should just go with
> the variable.

IMO, we really need to allow changing the set of target where traversal
begings. NoUpdate can be used to remove elements from there. But to add
elements to the set we'd need either the variable or a new builtin.

See jam.c, lines 407-410 for the part that should be changed.

- 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