|
Boost-Build : |
From: David Abrahams (dave_at_[hidden])
Date: 2002-12-23 12:26:06
Rene Rivera <grafik666_at_[hidden]> writes:
> [2002-12-22] Rene Rivera wrote:
>
>>[2002-12-22] David Abrahams wrote:
>>
>>>Rene Rivera <grafik666_at_[hidden]> writes:
>>>
>>>> [2002-12-20] David Abrahams wrote:
>>>>>
>>>>>The problem is this:
>>>>>
>>>>>Perforce Jam automatically updates everything that doesn't look like
>>>>>an option on the command line. We wanted to be able to control what
>>>>>gets updated, so we turned that off in core jam and wrote this little
>>>>>thing in Jambase which does it programmatically:
>>>>>
>>>>> for local e in $(ARGV[2-])
>>>>> {
>>>>> if ! [ MATCH "^(-).*" : $(e) ]
>>>>> {
>>>>> # This is not an option, so it is a target name.
>>>>> UPDATE $(e) ;
>>>>> }
>>>>> }
>>>>>
>>>>>Unfortunately, that broke compatibility with Perforce Jam for cases
>>>>>where the users adds -f to the command-line. I don't think that was
>>>>>intentional, so I guess I'd call it a bug. You can add the code above
>>>>>to any file foo you use with -ffoo to get it to work like Perforce Jam
>>>>>while we figure out what to do about it.
>
> 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.
-- 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