2011-10-13 75 views
1

我有这个末变量之间添加字符串GNU让

SRC = file1.c file2.c file3.c 

如何使之成为

file1.c + file2.c + file3.c 

我能得到最接近的是(注意“+”号)使用

file1.c + file2.c + file3.c + 

SRC2 := $(SRC:.c=.c +) 
+0

对于你需要什么文件名之间的+?你想'SRC + = file1.c file2.c file3.c'? –

+0

需要使用简单的Windows复制命令来合并文件的内容。 'copy/b file1.c + file2.c + file3.c output.bin' – checksum

回答

0

下面是做这件事:

SRC=abc def ghi 
SRC2=$(word 1,$(SRC))$(foreach f,$(wordlist 2,99999,$(SRC)), + $(f)) 
all: 
     @echo $(SRC2) 

也就是说,剥离的第一个字,则无条件地用“+”添加前缀每个字。

下面是另外一个,只有在确定每个单词之间有一个空格时,才可以使用SRC

EMPTY= 
SPACE=$(EMPTY) $(EMPTY) 
SRC=abc def ghi 
SRC2=$(subst $(SPACE), $(SPACE)+$(SPACE),$(SRC)) 
all: 
     @echo $(SRC2) 

这一次的想法是用序列空间加空间替换单个空格字符。确保你的逗号和$(SRC)之间没有空格!

+0

感谢这两个解决方案。我确实找到了另一种方式。 'SRC2 = $(subst.c,.c +,$(subst $(lastword $(SRC)),, $(SRC)))$(lastword $(SRC))' – checksum

相关问题