使用通配符将所有Makefile目标指定为.PHONY
我的Makefile中的所有目标都不是真实的文件,只指定使用通配符将所有Makefile目标指定为.PHONY,makefile,Makefile,我的Makefile中的所有目标都不是真实的文件,只指定是否有效。虚假:%。或者我应该列出所有目标吗?您需要列出所有拟作为虚假目标的目标,作为目标的先决条件。虚假目标,而不仅仅是编写。虚假:% .PHONY:%不会做你认为它会做的事情(即,将每个目标变成一个虚假目标) 作为一个例子,考虑下面的Mag文件: .PHONY: % foo: @echo creating $@ @touch $@ 对于上面的这个makefile: $ make creating foo $ mak
是否有效。虚假:%
。或者我应该列出所有目标吗?您需要列出所有拟作为虚假目标的目标,作为目标的先决条件。虚假目标,而不仅仅是编写。虚假:%
.PHONY:%
不会做你认为它会做的事情(即,将每个目标变成一个虚假目标)
作为一个例子,考虑下面的Mag文件:
.PHONY: %
foo:
@echo creating $@
@touch $@
对于上面的这个makefile:
$ make
creating foo
$ make
make: 'foo' is up to date.
因此,目标foo
不会因为在makefile中有.phony:%
而变成虚假目标。否则,foo
的配方就会被执行,因为虚假目标总是过时的