我有这个:
FOO = foo1 foo2 ... fooN
我想把所有这些字符串连接起来,并用冒号(如)分隔:
foo1:foo2:foo3:...:fooN
在不使用外部UNIX工具的情况下,如何在GNU Make中完成这个任务?我有这个:
FOO = foo1 foo2 ... fooN
我想把所有这些字符串连接起来,并用冒号(如)分隔:
foo1:foo2:foo3:...:fooN
在不使用外部UNIX工具的情况下,如何在GNU Make中完成这个任务?请看下面的代码。
# A literal space.
space :=
space +=
# Joins elements of the list in arg 2 with the given separator.
# 1. Element separator.
# 2. The list.
join-with = $(subst $(space),$1,$(strip $2))
使用方法:
FOO = foo1 foo2 ... fooN
COLON_SEPARATED_FOO := $(call join-with,:,$(FOO))
你可以通过将空格替换为冒号来完成:
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
FOO = foo1 foo2 ... fooN
FOO_LIST = $(subst $(SPACE),:,$(FOO))
FOO_LIST
是 foo1:foo2:...:fooN
。