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