make: variable expansion in .for/.endfor

Roman Neuhauser neuhauser at bellavista.cz
Fri May 16 07:21:26 PDT 2003


# ru at freebsd.org / 2003-05-16 15:30:01 +0300:
> > > On Sun, Apr 27, 2003 at 02:48:12PM +0200, Roman Neuhauser wrote:
> > > > # 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?

> Yes, BUGS section talks about a different problem [...]

    thanks for confirming.

> FWIW, the code snippet above works perfectly under 5.x make(1).

    good to know

> I recall this problem was fixed (perhaps, it was even me, not
> sure).  Sorry, but I don't have enough time to invest into
> backporting the bugfix into RELENG_4, the latter is becoming
> less priority for me as 5.x evolves.
> 
> If you'll be able to extract it from HEAD (there is a huge
> backlog of non-backported fixes for make(1) there), I will
> happily commit it for you.

    i'll try to find some time, but I'll have a hard time as I don't
    know much of C...

    anyway, thanks a bunch for the reply!

-- 
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