我当前的项目包含一个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 中处理这个问题?
又快又脏:
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))
@Beta,
您的第一个示例(使用 addprefix)有点偏离。应该看起来像
SOURCES := file1.txt file2.txt file3.txt
assembled.txt:
myprog $(addprefix -I , $(SOURCES))
我认为这比你的 foreach 版本好一点。