Makefile中的通用(非文件)模式匹配

时间:2010-07-09 19:36:32

标签: makefile design-patterns

是否可以为非文件名设置通配符目标,例如:

build-%: pull-% build-%.stamp
pull-%:
  cd $* ; git log HEAD..origin/master | grep -q . && ( git pull ; $(RM) ../build-$*.stamp ) || true
build-%.stamp:
  cd $* ; ant
  touch $@

这个想法是调用make build-foo,它只会在有新的上游变化(被拉动)时调用构建。

但是,% - 模式匹配似乎仅适用于文件名,即使在.PHONY中定义扩展形式(“build-foo”)时也是如此。

我是否必须使用Makefile generic pattern rule -- xyzzy-en_US.ext2 from xyzzy.ext0中的模板?

1 个答案:

答案 0 :(得分:2)

啊!在build-%规则后添加分号。

(我没有注意到这个问题,因为我在规则中添加了一个命令:@echo $@。)