这就是想法:
$(filenameParam)_%.sfx : commun_prereq.per mycommand $< (all my $@)
其中%可以是任何一个字母,有时是e,f,有时是e,s,有时是h,r,t,基本上是任何包含字母的文件。
对于给定的规则调用,只有一个目标,该目标的名称放入 $@ 自动变量。当make试图构建目标时 foo_h.sfx 然后 foo_h.sfx foo_r.sfx 然后 foo\u r.sfx 等
$@
foo_h.sfx
foo_r.sfx
foo\u r.sfx
还有一个问题:在一个模式规则中可能有多个目标模式。这使得make在一次规则调用中构建所有这些目标。在这种情况下, $@ $* 这与模式相匹配。因此:
$*
%.x %.y : @echo '@ = $@ / * = $*'
$ make foo.x @ = foo.x / * = foo $ make foo.y @ = foo.y / * = foo