根据the GNU make manual,可以通过在{和1}}的相应行前加上来抑制shell命令的回显。
使用选项@
或-n
,可以进行干运行并打印所有这些前缀线而不实际执行它们。
是否可以同时执行make配方和打印shell命令?换句话说,我是否可以对所有食谱强制回应,无论他们在开头是否有--just-print
?
答案 0 :(得分:3)
使用GNU Make 4.0,可以选择--trace
。 (我不知道支持--trace
的最早版本是什么。我只知道4.0支持它。)
' - 追踪'
显示'make'执行的跟踪信息。打印整个 要执行的配方,即使是通常无声的食谱 (由于
'.SILENT'
或'@'
)。还会输出makefile名称和行 定义配方的编号,以及有关原因的信息 目标正在重建。
使用此Makefile
:
all:
@echo foo
echo blah
常规跑步:
$ make
foo
echo blah
blah
使用--trace
:
$ make --trace
Makefile:2: target 'all' does not exist
echo foo
foo
echo blah
blah
输出 echo foo
,即使它以@
开头。