Re: make or kmod.mk broken



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.


harti
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: BFO Egg.
    ... I was explaining this to Mrs. G. and she's like "what do you ... "Because I want to keep the shell, ... Now fuck off and get me a fucking beer." ... You might want to paraphrase the first few words. ...
    (uk.misc)
  • Re: BFO Egg.
    ... I was explaining this to Mrs. G. and she's like "what do you ... "Because I want to keep the shell, ... One way ticket from Mornington Crescent to Tannhauser Gate please. ...
    (uk.misc)
  • Re: BFO Egg.
    ... I was explaining this to Mrs. G. and she's like "what do you ... "Because I want to keep the shell, ... Now go and prepare dinner and darn ...
    (uk.misc)