make 中所有目标的规则 - 即使文件存在
Rule for all targets in make - even if the file exists
我想创建一个 Makefile
,无论给 make
的目标名称是什么,它都会输出 foo
。
所以所有这些都应该有效:
$ make
foo
$ make a
foo
$ make foobar
foo
以下 Makefile
几乎可以满足我的要求:
all %:
@echo foo
.PHONY: all
但是,如果存在与目标同名的文件,它将失败:
$ touch abc
$ make abc
make: `abc' is up to date.
由于 .PHONY
不接受模式规则,我不知道如何让 make
忽略每个文件。
怎么样:
all $(MAKECMDGOALS): ; @echo foo
.PHONY: all $(MAKECMDGOALS)
我想创建一个 Makefile
,无论给 make
的目标名称是什么,它都会输出 foo
。
所以所有这些都应该有效:
$ make foo $ make a foo $ make foobar foo
以下 Makefile
几乎可以满足我的要求:
all %: @echo foo .PHONY: all
但是,如果存在与目标同名的文件,它将失败:
$ touch abc $ make abc make: `abc' is up to date.
由于 .PHONY
不接受模式规则,我不知道如何让 make
忽略每个文件。
怎么样:
all $(MAKECMDGOALS): ; @echo foo
.PHONY: all $(MAKECMDGOALS)