2014-05-09 29 views
1

我有3只显示目录和要将可执行对库链接的Makefile patsubst多个occcurence在替换模式

我已经有目录列表:

DIRS=Math Graph Test

我想要得到的库列表像这样:

LIBS=Math/libMath.a Graph/libGraph.a Test/libTest.a

如果我用这个:

$(DIRS:%=%/%.a)

我得到:

Math/%.a Graph/%.a Test/%.a

GNU Makefile说:

只有在模式和替代第一“%”是用这种方法处理; 任何后续'%'不变

在这里我需要2个事件被替换,而不仅仅是第一个。

回答

0

最终我用:

LIBS:= $(join $(DIRS), $(DIRS:%=/lib%.a))

2

你必须使用一个循环:

LIBS := $(foreach D,$(DIRS),$D/lib$D.a)