在Makefile'foreach'循环中添加换行符

时间:2011-01-24 23:11:48

标签: makefile

是否可以在Makefile的foreach循环中插入要执行的换行符?

目前,我有以下内容:

$(foreach my_lib,$(MY_LIBS),$(call my_func,results,boxer,$(my_lib)))

现在,假设我有:

MY_LIBS = lib1 \
          lib2

以上foreach循环将评估为:

lib1 lib2

我希望这个评估为:

lib1
lib2

是否可以在foreach循环中插入换行符来完成此操作?

谢谢。

2 个答案:

答案 0 :(得分:28)

define \n


endef

$(error Here is a message${\n}with embedded${\n}newlines.${\n}${\n}hooray!)

您可以在${\n}等内容中使用$(subst...)

答案 1 :(得分:0)

您可以使用

执行此操作
define MY_LIBS
lib1
lib2
endef

在更复杂的情况下,您希望从循环生成多行makefile命令,您需要使用eval函数。