Makefile:删除没有依赖项的中间文件

时间:2012-05-10 14:09:12

标签: makefile

stackies!

孜孜不倦的实验和搜索还没有找到解决这个看似简单的问题的方法。

在我的构建中,.cc文件依赖于.proto文件。在make过程中,.proto文件被翻译成.cc和.h文件,然后被收集并构建到可执行文件中。

如何确保在删除.proto时,在make进程中自动删除相应的中间.cc文件? (如果不是,它会进入构建的下一个阶段,并且在过去会引起问题。)

现在,我只是在删除或重命名.proto时清除所有生成的.cc / .h文件 - 这是正确的,但会触发几乎整个系统的重建。

提前致谢...!

1 个答案:

答案 0 :(得分:1)

您可以编写类似clean的规则,但不那么严格:

SOURCES = $(PROTOS:.proto=.cc)

.PHONY: tidy
tidy:
        @rm $(filter-out $(SOURCES), $(wildcard *.cc))

然后,您可以手动启动此规则,或使其成为可执行文件的仅订单先决条件。

或者你可以在你的可执行文件的规则中放入相同的命令,但这有点不雅。