有Make调试器吗?我需要找出别人的makefile

时间:2010-09-10 21:31:51

标签: makefile multiple-makefiles makefile-project

我需要为非常复杂的多层makefile(许多包含文件,大量目标,大量变量)添加一些功能,这些功能是由当时不再与公司合作的其他人编写的。这里有一些人了解其中的一部分,但不了解整个事情。

是否有一个Make调试器,我可以单步执行它,或者一些等效的方式来跟踪执行通过编译流经的许多文件和目标?还是有其他方法来处理这件事的工作原理吗?

2 个答案:

答案 0 :(得分:2)

您可能希望查看本文http://oreilly.com/catalog/make3/book/ch12.pdf(Oreilly的“使用GNU Make管理项目,第三版”中的“调试Makefile”一章)

答案 1 :(得分:2)

GNU Make有various options用于在运行时打印出一些调试信息。 -d将打印出大量调试信息;也许太多了,也许不是你需要的,但你可能会尝试筛选。还有一些选项,如-n用于执行干运行,-p用于打印规则数据库,-w用于打印出您所在的目录,以帮助跟踪复杂递归中的问题make和--warn-undefined-variables用于跟踪变量的某些问题。

如果这些都不起作用,您可能想尝试Remake,它声称是一个带有调试器的修补GNU make。我没有使用它,但是从documentation开始,看起来它可能对你有所帮助,而且它还有一些关于尝试追踪Makefile中错误的建议。