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>
