我们有使用gccmakedep的脚本,它根据上次运行的系统在Makefile中填充依赖项。
我们如何让Makefile中的clean
目标自动删除gccmakedep添加到Makefile的依赖项?
(我无法在clean
目标中搜索自己搜索"# DO NOT DELETE"
分隔符的命令,因为gccmakedep本身会找到该参数并认为它应该在哪里切割......?)
答案 0 :(得分:3)
我认为你可以让gccmakedep -fdepends.mk
将输出产生到不同的makefile中。然后你可以包含它,并删除干净的规则。
-include depends.mk
clean:
@rm -f depends.mk
就个人而言,我使用cc -MMD -MP
生成.d
取决于并将它们包含在Makefile中。它不需要任何额外的工具,您可以清除.d
文件和目标文件。这是an example。
这也是Scott McPeak的good writeup,提供更便携的解决方案和解释。
答案 1 :(得分:1)
如果可能,请避免修改Makefile(从而转储gccmakedep
)。而是使用dependency tracking的外部文件。
或者在干净规则中使用一个执行清理的脚本(因此gccmakedep
不会直接触发)