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