绘制由make生成的DAG?

Rob*_*nes 10 linux makefile directed-acyclic-graphs

我的理解是,在make执行时,它会在内部生成一个DAG来表示项目中的所有依赖项.有没有办法获得DAG并绘制图表,比如使用像graphviz这样的东西?

我在Ubuntu 8.04上使用gnu make.

编辑

我只是碰到这些工具被称为跑mamdagmamdot.他们应该同时使用nmake和gnu make,但我似乎无法找到让gnu make吐出mam文件的选项.

它可以在这里下载 - 这些包:

INIT
ast-base
ast-gpl

刚刚在AT&T的Glenn Fowler发现了这篇文章,描述了MAM语言和mamdot工具.

看起来你必须修补gnu make才能工作,虽然我还不是100%肯定.

也许有另一种方式?

小智 1

对于代码方面,doxygen将生成源文件和头文件之间的依赖关系图(如果您对此感兴趣),而无需使用 make。

  • 不,我实际上想要转储 `make` 的内部 DAG。这是证明特定项目的构建设置已损坏并且需要重新设计的一种方法。沿着论文的思路,“递归使人认为有害”,http://aegis.sourceforge.net/auug97.pdf (3认同)