On Sat, 12 Feb 2005 18:32:01 -0800, Kris Kennaway <[EMAIL PROTECTED]> 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


--
[EMAIL PROTECTED]  -  [EMAIL PROTECTED]
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/  -  [EMAIL PROTECTED]
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to