确定使用makefile和ant脚本的构建过程中的所有文件依赖项

时间:2010-07-28 13:47:44

标签: maven-2 ant build makefile autotools

我正在尝试理解代码库的构建过程。该项目使用autoconf(配置生成makefile的脚本)和Maven。

我希望能够识别项目中的所有文件依赖项,以便对于最终由构建生成的任何输出文件,我可以确定它是如何实际生成的。最后,我想使用类似graphviz的内容生成一个图表来可视化依赖项,但是现在我只想提取它们。

有没有自动化的方法呢?换句话说,给定一些makefile和Maven或ant XML文件,以及顶级目标的名称,有没有办法识别将生成的所有文件,用于生成它们的程序以及输入文件与这些计划有关吗?

2 个答案:

答案 0 :(得分:1)

电动加速器和ClearCase是两个系统,通过运行构建并观察其功能(可能是通过拦截操作系统调用)来实现此目的。这样做的好处是适用于任何工具,并且不会受到错误的makefile的影响(提示:它们都是错误的)。

这可能是非平凡makefile的唯一可靠方式,因为它们都可以动态生成新的make规则,或者具有依赖于磁盘上未明确列出的文件存在的行为。< / p>

答案 1 :(得分:0)

我不知道maven方面,但是一旦你./configure项目,你可以通过make -pdmake --print-data-base --dry-run)的输出来查找依赖项。如果它基于递归make,但是仍然可以管理,这可能会更烦人。

请注意,如果您正在使用automake,它会将详细的依赖项计算为编译的副作用,因此在完成完整构建之前,您不会获得#include d标头上的所有依赖项。