make中所有目标的规则 - 即使文件存在

时间:2015-03-31 22:33:43

标签: makefile

无论给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忽略每个文件。

1 个答案:

答案 0 :(得分:2)

怎么样:

all $(MAKECMDGOALS): ; @echo foo
.PHONY: all $(MAKECMDGOALS)