是否有make debug选项可以打印出所有shell函数执行信息?
例如,如果我有makefile
contents := $(shell echo foo)
all:
我希望它打印“ echo foo”。
答案 0 :(得分:0)
您可以将自己的程序作为外壳提供,它将回显命令并执行您需要执行的其他任何操作。
https://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html:
5.3.2选择外壳
用作外壳程序的程序来自变量
SHELL
。如果未在makefile中设置此变量,则将程序/bin/sh
用作shell。传递给shell的参数来自变量.SHELLFLAGS
。.SHELLFLAGS
的默认值通常为-c
,或在符合POSIX的模式下为-ec
。
因此,运行:
SHELL=mysneakyprogram make all
每个命令都将使用mysneakyprogram
参数传递给-c
。
要注意的是:这不仅适用于构建目标的普通命令,不仅适用于$(shell ...)
;我认为您无法区分这两种情况。