如何请求 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
$
我不知道你所说的“暴露内容”是什么意思。如果您正在寻找一种仅显示将运行的命令的方法,您可以使用
-n
选项:
$ make -n job1
echo 33
echo 22
echo 11
但请注意,这将 (a) 仅在确定目标
job1
已过期时打印这些命令,并且 (b) 它还会打印 job1
目标的任何先决条件的命令,其中被确定为已过时。在您的示例中,job1
将始终过时,因为配方不会更新它,并且该目标没有先决条件,因此对于您给出的示例来说,这不是问题。
另一种选择是使用 -p
选项,它将打印 make 的整个变量和目标数据库,但无法限制输出仅显示单个目标的信息。 这些是你唯一的选择。
注意,
-n
选项是 POSIX 标准,因此它应该与任何符合 POSIX 的
make
实现一起使用,但
-p
特定于 GNU Make。