我当前的项目包含一个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中处理?
答案 0 :(得分: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))
答案 1 :(得分:1)
@Beta,
你的第一个例子(使用addprefix)有点偏。应该看起来像
SOURCES := file1.txt file2.txt file3.txt
assembled.txt:
myprog $(addprefix -I , $(SOURCES))
我觉得它比你的foreach版本好一些。