多彩的 makefile 信息命令

muc*_*cka 1 unix linux makefile

通常我使用echo -e "\e[1:32mMessage\e[0m"从生成文件中打印彩色消息。但是现在我想在ifndef块内打印消息,所以我使用了$(info Message)样式。是否有可能使这种信息丰富多彩?

Eta*_*ner 5

是的。您可以使用类似的工具tput来输出所需的文字转义序列,而不是使用echo -e(无论如何这不是一个好主意)来做同样的事情。

例如:

$(info $(shell tput setaf 1)Message$(shell tput sgr0))
Run Code Online (Sandbox Code Playgroud)

尽管与配方上下文中的(或类似)方法相反,这需要生成两个shell 并运行两个外部命令,echo因此相对而言更昂贵。

您可以(并且如果您计划在多个地方使用颜色,则应该)将输出保存tput在变量中,然后重新使用它。

red:=$(shell tput setaf 1)
reset:=$(shell tput sgr0)
$(info $(red)Message$(reset))
$(info $(red)Message$(reset))
Run Code Online (Sandbox Code Playgroud)