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 If there are other instances such as the example you've given, they should indeed be fixed. Cheers, -- Ruslan Ermilov ru_at_FreeBSD.org FreeBSD committer
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:50 UTC