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 中处理这个问题?

4

2 回答 2

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))
于 2013-04-04T12:53:29.613 回答
1

@Beta,

您的第一个示例(使用 addprefix)有点偏离。应该看起来像

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

assembled.txt:
    myprog $(addprefix -I , $(SOURCES))

我认为这比你的 foreach 版本好一点。

于 2013-04-04T20:43:28.703 回答