Date: Sat, 12 Feb 2005 23:11:12 -0600 From: "Jeremy Messenger" <mezz7@cox.net> To: "Kris Kennaway" <kris@obsecurity.org> Cc: hackers@freebsd.org Subject: Re: Makefile .for and .if expansion Message-ID: <opsl4d0yoi9aq2h7@mezz.mezzweb.com> In-Reply-To: <20050213023201.GB24426@xor.obsecurity.org> References: <20050213023201.GB24426@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 12 Feb 2005 18:32:01 -0800, Kris Kennaway <kris@obsecurity.org> wrote: > The following small makefile doesn't behave as one would naively > expect: This problem is known to me for pretty very long time when I reported to Brandon D. Valentine for linux-flashplugins6 issue.. You will see in the Makefile that the PLUGINSDIR doesn't work that has like this: ===================================== do-install: @${MKDIR} ${PREFIX}/lib/linux-flashplugin6 .for f in ${LIBFILES} @${INSTALL_DATA} ${WRKSRC}/${f} ${PREFIX}/lib/linux-flashplugin6 .if exists(${PLUGINSDIR}) @${LN} -sf ${PREFIX}/lib/linux-flashplugin6/${f} ${PREFIX}/${PLUGINSDIR} .endif .endfor ===================================== Cheers, Mezz > MANLANG?=foo "" > all: > .for i in ${MANLANG} > .if empty(${i}) > @echo foo ${i} > .endif > .endfor > > ports-i386%make > foo foo > foo > > I think this is because the .if evaluation is happening too early, and > it's not being done after the .for loop is expanded and the i variable > is set. > > In order to get this to work I seem to have to do the following: > > MANLANG?=foo "" > .for i in ${MANLANG} > j= ${i} > .if (${j} != "\"\"") > .for l in ${j} > k+= ${l} > .endfor > .endif > .endfor > all: > @echo ${k} > > ports-i386%make > foo > > If I remove the inner .for it breaks, and if I remove the j assignment > it breaks. Also if I try and remove the use of k and put an echo > inside the inner .for (with the all: preceding the whole loop) it > breaks. > > This is extremely nasty. > > Am I missing an easier way to do this? > > Kris -- mezz7@cox.net - mezz@FreeBSD.org FreeBSD GNOME Team http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?opsl4d0yoi9aq2h7>