有没有一些好用的工具可以检查Makefile文件?

19

庞大复杂的make文件可能很难阅读和检查。 有哪些工具可以用于可视化或以其他方式检查gnu make文件?


就我个人而言,我只使用 Mk. I 眼球和编辑器组合……大多数人编写的 makefile 非常相似,你会习惯的。但是对于机器生成的 makefile,情况并非如此,你应该从生成器的输入开始。 - dmckee --- ex-moderator kitten
3
你可以使用 make -d(可选加上 -n)来让它打印出正在执行的过程,这通常会很有帮助。 - i_am_jorf
4个回答

21

我尝试使用CPAN的可视化工具,但失败了。因此,我编写了自己的快速而简单的Makefile可视化工具。

你可能想要尝试一下: http://github.com/vak/makefile2dot


2
如果我能给你+10分的话,我会的。你的解决方案比发布的任何Perl解决方案都要好。 - synthesizerpatel
@synthesizerpatel 怎么样发布悬赏并接受 vak 的回答呢? - n611x007

9

1
我找到了一个与此类似的,也适合生成png文件的东西。http://search.cpan.org/~agent/Makefile-GraphViz-0.18/lib/Makefile/GraphViz.pm - Johnny
1
包含一些关于如何使其工作的信息会很有帮助。例如:1)安装[依赖项],2)通过[方法]安装[thisPerlLibrary],然后3)运行[foo Makefile out.png]以生成结果。 - jvriesem

4
我使用了 --print-data-base (-p) 选项,并获得了很好的效果。再加上 --just-print (-n, --dry-run) 的组合以及将标准输出重定向到文件中,就可以创建一个包含所有规则和变量的新的单一 makefile,并且以通用格式呈现,这样您可能会更容易地理解。对于非常糟糕的 makefile,我甚至用 Perl 解析这个输出来生成一个新的构建系统!

3
我不知道有什么工具可以理解一组makefile。创建这样一个工具可能几乎是不可能的,因为大多数基于make的构建环境都是随意命令、可怕的宏替换和高度上下文相关的控制流的混合物。
顺便说一句,我听说SCons很不错,我正在研究它,因为我参与维护一个系统构建环境,它本身已经成为了一个维护噩梦。

SCons是我最喜欢的构建系统,但make有一个巨大的优势。您可以快速编写一个make文件来针对一组文件执行任何程序。SCons使用各种插件来执行不同的构建任务,它包括常见编译器的插件,但在某些情况下,您可能需要编写自己的插件。 - mikerobi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接