是否可以在Makefile的foreach
循环中插入要执行的换行符?
目前,我有以下内容:
$(foreach my_lib,$(MY_LIBS),$(call my_func,results,boxer,$(my_lib)))
现在,假设我有:
MY_LIBS = lib1 \
lib2
以上foreach
循环将评估为:
lib1 lib2
我希望这个评估为:
lib1
lib2
是否可以在foreach
循环中插入换行符来完成此操作?
谢谢。
答案 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
函数。