Добавьте новую строку в цикл 'foreach' Makefile - PullRequest
15 голосов
/ 25 января 2011

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

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

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

Теперь, предполагаячто у меня есть:

MY_LIBS = lib1 \
          lib2

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

lib1 lib2

Я бы хотел, чтобы это значение:

lib1
lib2

IsМожно ли вставить новую строку в цикл foreach для достижения этой цели?

Спасибо.

Ответы [ 2 ]

28 голосов
/ 25 января 2011
define \n


endef

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

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

0 голосов
/ 25 января 2011

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

define MY_LIBS
lib1
lib2
endef

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...