【发布时间】:2016-10-03 10:19:34
【问题描述】:
我在 makefile 中有一系列模式依赖项,最后它们应该放在一个文件中,例如:*.x -> *.y -> onefile.z
所以我制作了这样的文件:
$ touch a.x b.x
和规则:
%.y: %.x some-other-script
touch $@
onefile.z: %.y second-other-script
touch $@
这条规则不起作用:
$ make onefile.z
make: *** No rule to make target '%.y', needed by 'onefile.z'. Stop.
使用通配符:
%.y: %.x some-other-script
touch $@
z: $(wildcard *.y) second-other-script
touch $@
这也不起作用:它看到没有*.y 文件并继续使onefile.z 跳过第一条规则。
$ make onefile.z
touch onefile.z
$ ls
a.x b.x onefile.z Makefile
我可能可以将两条规则合二为一,但在实际应用中,步骤较多,有些是通过 HTTP 发出请求,耗时较长,实际上不应无故重复。
有没有办法建立这样的依赖关系?
【问题讨论】:
标签: makefile