当我运行此Makefile时:
foo.x:
.PHONY: a b
%.x: a
%.x: b
$(error [$^])
我知道:
Makefile:5: *** [b]. Stop.
为什么我看不到[a b]
而不是[b]
?如何使Make包含它们两者?
答案 0 :(得分:2)
你不能那样。制作手册说,模式规则没有配方cancel the pattern rule。
您可以使用同一规则中的所有先决条件来编写模式规则:
%.x: a b
$(error [$^])
或者您可以在非模式目标上定义额外的先决条件:
foo.x: a
%.x: b
$(error [$^])