From: David Abrahams (dave_at_[hidden])
Date: 2002-12-23 12:44:21
Rene Rivera <grafik666_at_[hidden]> writes:
> [2002-12-23] David Abrahams wrote:
>>Rene Rivera <grafik666_at_[hidden]> writes:
>>> OK, I looked a bit at the code and here's a solution...
>>> 1. Bring back the Jam/MR code to add the command line targets for update
>>> 2. Change the UPDATE builtin to work like so:
>>> UPDATE some_targets ; ## marks the given targets for update
>>> UPDATE ; ## removes all targets from the update list
>>Hmm. It's minimalist, but I think it's relatively un-Jam-like to work
>>that way. Suppose you have a variable that turns out to be empty?
>> UPDATE $(targets) ;
>>I'm not too worried, though; if you can't think of a better design I
>>think this is acceptable.
> There is another alternative I thought about that is not as minimalist:
> UPDATE targets * : action ? ;
> ## action = MARK | CLEAR - default is MARK
> UPDATE a b c ; ## marks a b c for update
> UPDATE a b : CLEAR ; ## clears/unmarks a b from update list
> UPDATE : CLEAR ; ## clears all targets from update list
> This is a bit more work to implement but it is more flexible ;-)
IMO a cleaner possibility would be to have UPDATE *reset* the targets
which need update and return its previous state.
rule add-update ( targets * )
targets += [ UPDATE ] ;
UPDATE $(targets) ;
-- David Abrahams dave_at_[hidden] * http://www.boost-consulting.com Boost support, enhancements, training, and commercial distribution
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