如何在GNU中合成换行符发出警告或错误?

时间:2013-06-12 00:07:54

标签: makefile gnu-make

使用b uilt-in $(error text) and $(warning text) functions of GNU Make时,如何在没有杂技的情况下将换行符放入错误/警告输出中?

杂技是指有趣的方法,比如这两个:

$(warning $(shell /bin/echo -e "something\nfoo\nbar\nbaz"))
$(warning $(shell /bin/bash -c 'echo  -e "something\nfoo\nbar\nbaz"'))
哪个,顺便说一句,在Ubuntu 10.04上使用GNU Make 3.81对我不起作用。

原理:我想让ifeq的条件部分(ifneqGNUmakefile)的错误输出更具可读性。


目前我的解决方法是使用每一行:

$(warning ...)

最后到最后一行:

$(error ...)

1 个答案:

答案 0 :(得分:18)

使用define / endef定义换行符变量并将其用作$ n,如下所示:

define n


endef

$(warning "something$nfoo$nbar$nbaz")

请注意define和endef之间的两个空行