2013-04-04 51 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版本更好一點。