2013-04-04 118 views
0

我目前的项目包含有,它的规则中生成文件(不依赖简体):的Makefile:为命令选项拆分输入文件

SOURCES : = "file1.txt file2.txt file3.txt" # and so on 

assembled.txt: 
    myprog -I $(SOURCES) 

的问题是,myprog不希望一个值,但相反,它会预期:

myprog -I file1.txt -I file2.txt ... 

我该如何在Makefile中处理?

回答

2

快速和肮脏的:

SOURCES := file1.txt file2.txt file3.txt 

SOURCES := $(addprefix -I , $(SOURCES)) 

assembled.txt: 
    myprog -I $(SOURCES) 

稍微更优雅:

SOURCES := file1.txt file2.txt file3.txt 

assembled.txt: 
    myprog $(foreach S, $(SOURCES),-I $(S)) 
+0

完美地工作,谢谢! – Einar 2013-04-04 12:55:34

1

@Beta,

你的第一个例子(使用addprefix)是有点过。本应该看起来像

​​

,我觉得比读你的foreach版本更好一点。