Re: make or kmod.mk broken

From: Max Laier <max_at_love2party.net>
Date: Sat, 14 Jan 2006 21:13:42 +0100
On Saturday 14 January 2006 20:50, Ruslan Ermilov wrote:
> On Sat, Jan 14, 2006 at 07:57:55AM +0100, Max Laier wrote:
> > Hi,
> >
> > in kmod.mk (and I believe in other places as well) we have constructs in
> > the form of this: ${SOMEARRAY:M${SOMEVAR}}  However, make doesn't seem to
> > understand this.  I don't see any traces that it ever did and I have no
> > clue if it should.
> >
> > I might well misunderstand things (not a make guru) so here is my 
testcase:
> > | STUFF= foo bar foobar
> > | FOO=foo
> > |
> > | mtest:
> > | 	echo ${STUFF:M${FOO}}
> >
> > and "$make mtest" gives:
> > | echo }
> > | }
> >
> > this clearly suggests that make is not equipped to handle the variable
> > expansion here.
> >
> > In any case we have to fix either kmod.mk or make.
> >
> > On a related question:  How can I get the actual location of a file that
> > is in .PATH?  All I could come up with was ${.ALLSRC:M*${MY_FILE}} which
> > doesn't work as I am explaining here.
>
> This OTOH works since FOO variable is special (it's evaluated at parse
> time):
>
> STUFF=  foo bar foobar
>
> mtest:
> .for FOO in foo
> 	_at_echo ${STUFF:M${FOO}}
> .endfor

Okay, I knew there was a catch.  So this can be worked around, thanks for the 
hint.

> If there are other instances such as the example you've given, they should
> indeed be fixed.

I don't see any, sorry for the noise.

-- 
/"\  Best regards,                      | mlaier_at_freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier_at_EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News

Received on Sat Jan 14 2006 - 19:12:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:50 UTC