gnu Make,如何强制虚假目标不止一次运行?

时间:2013-02-09 03:12:35

标签: build makefile gnu-make

我的构建系统坚持在一次调用中执行make所有目标,所以我得到:

make clean test clean build

第二次干净就会说“干净”没什么可做的。“即使它被添加到.PHONY目标。

任何方式?

2 个答案:

答案 0 :(得分:4)

我验证了这个。试试这个:

test: ...
    ...

build: ...
    ...

clean%: ...
    ...

然后你可以打电话:

make clean1 test clean2 build

似乎只要目标名称不同,即使它击中相同的目标模式,它也会重新运行。

答案 1 :(得分:4)

育! 这样做。不要依赖于目标的隐式排序 - 当您使用make -j时,它会完全改变。订购明确。如果你真的必须在构建之间进行清理,那么就像:

.PHONY: everything
everything:
    ${MAKE} clean
    ${MAKE} test
    ${MAKE} clean
    ${MAKE} build

同样,递归制作相当臭,但在这种情况下是你最好的选择。