Skip site navigation (1)Skip section navigation (2)
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>