[gnu.utils.bug] GNU make: substitution references

m5@lynx.uucp (Mike McNally) (06/26/89)

It seems that GNU make (3.48) doesn't expand the value of a variable in 
a simple substitution reference:

BLAH=balloons
BLEE=$(BLAH)

 . . .

	echo $(BLEE:oo=OO)	# should be ballOOns, instead is $(BLAH)

I'm not sure what the "right" thing to do is; I have lots and lots of
Makefiles that use the feature as provided by our own brain-dead mutant
of "make", and it does do the expansion.  I added a call to
expand_argument() at the appropriate place in variable.c, but I'm
willing to hear arguments to the contrary.

-- 
Mike McNally                                    Lynx Real-Time Systems
uucp: {voder,athsys}!lynx!m5                    phone: 408 370 2233

            Where equal mind and contest equal, go.

m5@lynx.uucp (Mike McNally) (06/28/89)

[ I've sent this to unix.wizards as well, because System V make has
come into question.  I don't really want to start another ridiculous
war about whose make is best. ]

In article <5754@lynx.UUCP> m5@lynx.UUCP (Mike McNally) writes:
>It seems that GNU make (3.48) doesn't expand the value of a variable in 
>a simple substitution reference:

I've since found out that System V make doesn't either.  Yuk.  Blech.

>BLAH=balloons
>BLEE=$(BLAH)
>
> . . .
>
>	echo $(BLEE:oo=OO)	# should be ballOOns, instead is $(BLAH)

Well, this wouldn't work anyway, because of the feature (documented in
the GNU make manual, but contradicted by the System V man page) that
make won't substitute unless the string is found at the end of the
text.  Yuk again, I say.  Here I went to the trouble of getting my
make mutant to work like the System V make is documented, and then
I take advantage of the feature, and now I'm stuck.  Phooey.


-- 
Mike McNally                                    Lynx Real-Time Systems
uucp: {voder,athsys}!lynx!m5                    phone: 408 370 2233

            Where equal mind and contest equal, go.