2015-03-31 29 views
0

我想要创建一个Makefile,输出foo,无论目标名称是给make规则中的所有目标 - 即使文件存在

因此,所有的这些都应该工作:

 
$ 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忽略每个文件。

+0

FWIW语法'所有%:'是不是在GNU的较新版本做出有效;你必须使用旧版本。 – MadScientist 2015-03-31 22:45:32

回答

2

如何:

all $(MAKECMDGOALS): ; @echo foo 
.PHONY: all $(MAKECMDGOALS) 
相关问题