2015-03-31 34 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)