我想宣布我的通配符目标是假的,但是假的不支持通配符:
我的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