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