On Thu, May 20, 2010 at 11:11:51AM +0200, Joachim Schipper wrote:
> Makefile:
> 
> A=This is the variable A
> FOO=$$A
> BAR:=$$A
> 
> test:
>       echo '${FOO}'
>       echo '${BAR}'
> 
> I expected, and GNU make gives,
> 
> echo '$A'
> $A
> echo '$A'
> $A
> 
> However, our make gives
> 
> echo '$A'
> $A
> echo 'This is the variable A'
> This is the variable A
> 
> Is this sensible, a historical accident that should be preserved, or a
> bug? I, at least, was rather surprised...

An addendum to the above: := really does expand exactly twice (and not
"until done"), although this is not obvious from the above. Consider:

A=$$B
B=b
FOO=$$A
BAR:=$$A

test:
        echo '${FOO}'
        echo '${BAR}'

This results in (with our make):

echo '$A'
$A
echo '$B'
$B

                Joachim

Reply via email to