[jamming] unexplained $(LOCATE) behavior

Paul Forgey paulf at metainfo.com
Mon May 17 19:42:52 PDT 2004


As I should have done in the first place, I isolated this into a foobar 
example.  As is happening in my real Jamfile, there's also an 
unexplained "warning: using independent target b" message which only 
occurs when a needs to be created or updated, which seems nonsensical.

So when the Foo actions fire, $(2) is shown to be temp/b.  Why isn't it 
b?

LOCATE_TARGET = temp ;

rule Foo
{
     MakeLocate $(1) : $(LOCATE_TARGET) ;
     Depends exe : $(1) ;
     Depends $(1) : $(2:G=dir) ;
     MkDir $(2:G=dir) ;
     Clean clean : $(1) ;
}

actions Foo
{
     echo $(2)
     touch $(1)
}

Foo a : b ;

...found 10 target(s)...
...updating 3 target(s)...
MkDir1 temp
MkDir1 b
warning: using independent target b
Foo temp/a
temp/b
...updated 3 target(s)...

On May 17, 2004, at 3:50 PM, Paul Forgey wrote:

> For reasons that are completely beyond me, $(LOCATE) appears to be 
> prepended to $(2) during a certain action.  Why?? Here's a simplified 
> excerpt from my Jamfile with the output.
>
> You can see $(2) is debug/debug/fpd-pkgtmp when the action is 
> executed.  I can even comment out all the rules except MakeLocate, 
> Depends and MkDir in Dpkg1 with the same result, so the intermediate 
> rules don't seem to be causing something unexpected.
>




More information about the jamming mailing list