make: variable expansion in .for/.endfor
Roman Neuhauser
neuhauser at bellavista.cz
Sun Apr 27 05:48:18 PDT 2003
# roam at ringlet.net / 2003-04-26 14:53:36 +0300:
> On Fri, Apr 25, 2003 at 08:44:00PM +0200, Roman Neuhauser wrote:
> > Try the following makefile: it works if called with -DONE, but does not
> > if called with -DTWO. Should I treat it as a bug and file a PR?
> >
> > LIST= foo bar baz
> >
> > .if defined(ONE)
> > . for v in ${LIST}
> > . if !defined(WITHOUT_${v:U})
> > WITH_${v:U}=yes
> > . endif
> > . endfor
> > .endif
> >
> > .if defined(TWO)
> > . for v in ${LIST}
> > V=${v:U}
> > . if !defined(WITHOUT_${V})
> > WITH_${V}=yes
> > . endif
> > . endfor
> > .endif
> >
> > a:
> > @echo \$${WITH_FOO}: ${WITH_FOO}
> > @echo \$${WITH_BAR}: ${WITH_BAR}
> > @echo \$${WITH_BAZ}: ${WITH_BAZ}
> >
> > .PHONY: a
>
> I think this is a known bug, and it seems to even be documented
> in the BUGS section of -STABLE's make(1) manual page.
I don't think this is covered. Can you point out the relevant text?
--
If you cc me or remove the list(s) completely I'll most likely ignore
your message. see http://www.eyrie.org./~eagle/faqs/questions.html
More information about the freebsd-hackers
mailing list