在makefile中,声明一个伪目标为通配符

我想宣布我的通配符目标是假的,但是假的不支持通配符:

我的makefile

%.config: gcc <<compile>> 

我希望用户能够使用我的makefile来编译项目,使用特定的configuration文件:

 make something.config make something_else.config 

显然,我需要我的目标是假的,因为目标文件存在,但只是写:

 .PHONY: %.config 

不起作用。 我在这里看到,makeapp支持另一种语法,这将有助于:

 $(phony %.config): ... 

但我只能使用make,而不能makeapp。

有什么办法可以做到吗?

这些是相互矛盾的目标。 虚假的目标是一个不对应于一个真实的文件。 在你的情况下,文件存在,但它不是一个真正的目标。

我建议不要使用配置文件的名称作为目标。 相反,建立一个基于以下之一的系统:

 make something_else make CONFIG=something_else.config