make 命令公开 Makefile 作业的内容

问题描述 投票:0回答:1

如何请求 make 公开 Makefile 作业的内容?

从这个 Makefile

$ cat Makedile
job1:
    echo 33
    echo 22
    echo 11

job2:
    echo Hello

我正在寻找一个

make
命令,可以通过作业名称公开作业的内容。

例如

$ make xzy job1
job1:
    echo 33
    echo 22
    echo 11
$
makefile gnu-make
1个回答
0
投票

我不知道你所说的“暴露内容”是什么意思。如果您正在寻找一种仅显示将运行的命令的方法,您可以使用

-n
选项:

$ make -n job1
echo 33
echo 22
echo 11

但请注意,这将 (a) 仅在确定目标

job1
已过期时打印这些命令,并且 (b) 它还会打印
job1
目标的任何先决条件的命令,其中被确定为已过时。在您的示例中,
job1
将始终过时,因为配方不会更新它,并且该目标没有先决条件,因此对于您给出的示例来说,这不是问题。

另一种选择是使用 -p

 选项
,它将打印 make 的整个变量和目标数据库,但无法限制输出仅显示单个目标的信息。

这些是你唯一的选择。

注意,

-n

 选项是 POSIX 标准,因此它应该与任何符合 POSIX 的 
make
 实现一起使用,但 
-p
 特定于 GNU Make。

© www.soinside.com 2019 - 2024. All rights reserved.