Date: Fri, 16 May 2003 16:21:24 +0200 From: Roman Neuhauser <neuhauser@bellavista.cz> To: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: make: variable expansion in .for/.endfor Message-ID: <20030516142124.GB1036@freepuppy.bellavista.cz> In-Reply-To: <20030516123001.GD2047@sunbay.com> References: <20030425184400.GS13541@freepuppy.bellavista.cz> <20030426115336.GF761@straylight.oblivion.bg> <20030427124812.GU13541@freepuppy.bellavista.cz> <20030429103404.GA680@straylight.oblivion.bg> <20030429130143.GK13541@freepuppy.bellavista.cz> <20030516123001.GD2047@sunbay.com>
next in thread | previous in thread | raw e-mail | index | archive | help
# ru@freebsd.org / 2003-05-16 15:30:01 +0300: > > > On Sun, Apr 27, 2003 at 02:48:12PM +0200, Roman Neuhauser wrote: > > > > # roam@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030516142124.GB1036>