[Vm-dev] Make question

Bert Freudenberg bert at freudenbergs.de
Tue Sep 5 18:54:03 UTC 2006

Andreas Raab schrieb:
> piumarta at speakeasy.net wrote:
>>> Something special about $* in ifeq?
>> The automatic variables ($@, $< $*, etc.) are only valid within the 
>> rule(s) of an implicit template.  Conditionals are not rules, so 
>> automatic variables are meaningless to (and are not defined within) them.
> Ouch. That stinks. But it sure as hell explains it.

Ah, it does indeed.

>> If you have to use automatic variables to construct the path to an 
>> optional file then I think I would suggest Dave's approach that puts 
>> the test into a shell command run from within the rule proper, where 
>> the $* makes sense and wil be correctly substituted.
> This is windows so shell commands are tricky (I'm not going to require 
> Cygwin etc) but I think I can solve this via recursive Makefile invokation.

Given your original problem ... how about this?

foo: dest/foo/test

dest/%/test: source/%/test
	@echo making $@ from $<

dest/%/test: default/%/test
	@echo making $@ from $<

This looks first for source/foo/test and then for default/foo/test.

- Bert -

More information about the Vm-dev mailing list