无论给Makefile
的目标名称是什么,我都想创建一个输出foo
的{{1}}。
所以这些都应该有效:
$ make foo $ make a foo $ make foobar foo
以下make
几乎可以满足我的需求:
all %: @echo foo .PHONY: all
但是,如果存在与目标同名的文件,则会失败:
$ touch abc $ make abc make: `abc' is up to date.
由于Makefile
不接受模式规则,我不知道如何让.PHONY
忽略每个文件。
答案 0 :(得分:2)
怎么样:
all $(MAKECMDGOALS): ; @echo foo
.PHONY: all $(MAKECMDGOALS)