Добавить новую строку в цикле Makefile 'foreach'

Можно ли вставить новую строку, которая будет выполнена в цикле foreach в Makefile?

В настоящее время у меня есть следующее:

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

Теперь, если у меня есть:

MY_LIBS = lib1 \
          lib2

Вышеупомянутый цикл foreach будет оценивать:

lib1 lib2

Я бы хотел, чтобы это оценивалось:

lib1
lib2

Можно ли вставить новую строку в цикле foreach, чтобы выполнить это?

Спасибо.

Ответы

Ответ 1

define \n


endef

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

Вы можете использовать ${\n} в таких вещах, как $(subst...).

Ответ 2

Вы можете сделать это, используя

define MY_LIBS
lib1
lib2
endef

В более сложных случаях, когда вы хотите генерировать многострочные команды makefile из цикла, вам нужно будет использовать функцию eval.