Замените пробелы новой строкой в ​​make-файле - PullRequest
12 голосов
/ 19 января 2011

Кто-нибудь знает, как заменить все пробелы в строке на новую строку в Makefile (GNU make)

Ответы [ 2 ]

21 голосов
/ 19 января 2011
text := hello a b c

null :=
space := ${null} ${null}
${space} := ${space}# ${ } is a space. Neat huh?

define \n


endef

$(error [$(subst ${ },${\n},${text})])
4 голосов
/ 28 февраля 2014

Вероятно, проще - и чище - использовать функцию GNU Make shell с sed для выполнения замены, вместо того, чтобы пытаться сделать это полностью в make.

STRING := foo bar baz
SPLIT  := $(shell echo "${STRING}" | sed -e 's/ /\n/g')

Или, немного лучше, если ваша оболочка bash вместо значения по умолчанию sh:

STRING := foo bar baz
SPLIT  := $(shell sed -e 's/ /\n/g' <<< ${STRING})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...