如何使用 make 打印目标的所有先决条件并构建规则

2024-04-17

一个大的项目通常有一个复杂的Makefile系统。有许多变量定义和目标先决条件依赖项分散在不同的 Makefile 中。有什么方便的方法来打印目标的所有先决条件和构建规则吗?

具体来说,有两个问题:

问题1

假设我有四个 Makefile:

生成文件1:

p: a b
    [some rule]

生成文件2:

q: c d
    [some rule]

生成文件3:

r: e f
    [some rule]

生成文件:

all: p q r
    [some rule]

我可以调用某些命令来获取类似于以下内容的输出吗?

all: a b c d e f
    [rule 1]
    [rule 2]
    [rule 3]
    ......

问题2

而且,如果我想要检查的实体只是一个普通的二进制文件而不是 Makefile 中指定的目标怎么办?例如,我如何获得先决条件并构建规则sha1sum在 coreutils 中? (很明显没有名为sha1sum在 coreutils 的 Makefile 中。)

我查看了帮助和手册make,但徒劳无功。也许我没有找到谷歌搜索的正确关键字。谁能帮我?谢谢!


我对这个问题有点不清楚,但是你尝试过 -p 选项吗?它打印解析 makefile 生成的 DAG,并打印规则、依赖项和变量值

任何构建(即使是复杂的构建)都遵循构建目标的相同原则。从您的示例中不清楚的是依赖项 a 和 b 是如何构建的。最终目标是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 make 打印目标的所有先决条件并构建规则 的相关文章

随机推荐