用makefile中的换行替换空格

时间:2011-01-19 12:03:01

标签: string makefile

有没有人知道如何将字符串中的所有空格替换为Makefile中的新行(GNU make)

2 个答案:

答案 0 :(得分:20)

text := hello a b c

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

define \n


endef

$(error [$(subst ${ },${\n},${text})])

答案 1 :(得分:4)

使用GNU Make的shell函数与sed进行替换可能更容易 - 也更干净 - 而不是试图在make内完全执行。

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

或者,如果您的shell为bash而不是默认sh,则稍微好一点:

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