小编Luc*_*cas的帖子

如何将makefile中给出的依赖项显示为树?

问题

我想查看一个 makefile 的一个或多个目标的依赖关系。所以我正在寻找一个程序,它可以解析生成文件,然后以某种树状格式(缩进,ascii-art,...)或图形(点,...)表示依赖关系。

相似的

有些程序可以针对其他情况执行此操作:

  • pactreeDebree可以以树状(如 ascii 格式或dot图形)的形式显示软件包的依赖关系,
  • gcc -M source_file.c 将 C 源文件的依赖项显示为 make 规则,
  • pstree显示进程树的 ascii 表示。

进步

在网上搜索我发现几乎没有帮助。这让我尝试

make --always-make --silent --dry-run some_target | \
  grep --extended-regexp 'Considering target file|Trying rule prerequisite'
Run Code Online (Sandbox Code Playgroud)

但看起来我必须在 perl 或 python 中编写更多解析代码才能将其表示为一个漂亮的树/图。而且我还不知道我是否真的会以这种方式获得完整和正确的图表。

要求

以某种方式限制图形会很好(没有内置规则,只有给定的目标,只有一定的深度),但在大多数情况下,我只是在寻找一种工具,它会给我一些“合理”的依赖关系,人类- 可视格式(就像“类似”下的程序一样)。

问题

  • 有没有可以做到这一点的程序?
  • 我会从 获得完整和正确的信息make -dnq ...吗?
  • 有没有更好的方法来获取这些信息?
  • 解析此信息的脚本/尝试是否已经存在?

make text-processing gnu-make

26
推荐指数
2
解决办法
2万
查看次数

标签 统计

gnu-make ×1

make ×1

text-processing ×1