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. > > Looks so. I suppose that we should use VarGetPattern() in modifier_M() in var.c to get the pattern instead of doing it by hand, though VarGetPattern() may need to know that we're getting a shell instead of a regexp pattern (special handling for '$' before ':'). >In any case we have to fix either kmod.mk or make. > > I would prefer to fix 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. > > > M*$(MY_FILE) would also match 'foobar' if MY_FILE is 'bar' which is probably not what you want. .IMPSRC might be what you want if you talk about an implicite rule. hartiReceived on Sat Jan 14 2006 - 16:07:19 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:50 UTC