如何从makefile中打印一行中的每个元素?

时间:2017-07-13 06:02:47

标签: bash makefile

我做了一个foreach,我正在测试一个条件,如果没有完成,应该为每一行的每个变量打印一条错误消息。

$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,@echo "" WARNING in: $(file)))

我制作了这段代码,但它在一行中打印(警告:x警告:x ...),我想打印它:

警告:

x

x ...

2 个答案:

答案 0 :(得分:2)

您可能需要移除\n并添加@

;

这样你在if语句中的命令就会扩展为:

$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,echo "" WARNING in: $(file);))

答案 1 :(得分:1)

对于

警告:XXX

警告:XXX

@$(foreach file,$(SOURCES),$(if $(shell grep "aaa" "$(file)"),,echo "" WARNING in: $(file);))

因为一行前面的@in正在取消makefile的回显。