我需要为非常复杂的多层makefile(许多包含文件,大量目标,大量变量)添加一些功能,这些功能是由当时不再与公司合作的其他人编写的。这里有一些人了解其中的一部分,但不了解整个事情。
是否有一个Make调试器,我可以单步执行它,或者一些等效的方式来跟踪执行通过编译流经的许多文件和目标?还是有其他方法来处理这件事的工作原理吗?
答案 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中错误的建议。