Boost logo

Boost-Build :

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
>>> automatically.
>>>
>>> 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