2014-05-09 57 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)