2017-06-17 109 views
0

如何使用make的模式特定變量值功能https://www.gnu.org/software/make/manual/html_node/Pattern_002dspecific.html#Pattern_002dspecific定義多個變量?例如,假設LIBDIRRPATH已經被定義,我想設置如下:make:使用模式特定變量值定義多個變量

LDFLAGS += -L$(LIBDIR) $(RPATH) 
LDLIBS += -lsomelibrary 

用於建立與該模式匹配utest%。因此,例如,

utest% : -L$(LIBDIR) $(RPATH) 

會讓我半途而廢,但那麼如何定義第二個變量?


我認爲可能使用多行變量https://www.gnu.org/software/make/manual/html_node/Multi_002dLine.html會工作,但我不能完全達到那裏。我已經試過:

define linking_vars := 
LDFLAGS := -L$(LIBDIR) $(RPATH) 
LDLIBS := -lsomelibrary 
endef 

utest% : $(linking_vars) 

define newline = 

endef 

utest_% : LDFLAGS := -L$(LIBDIR) $(RPATH) $(newline) LDLIBS := -lsomelibrary 

但我沒有任何運氣呢。

回答

1

我不完全明白你想要做什麼,但它聽起來就好像這能做到這一點:

utest% : LDFLAGS += -L$(LIBDIR) $(RPATH) 
utest% : LDLIBS += -lsomelibrary 
+0

是的,我正在比它需要的是這個更難!我閱讀文檔的方式雖然這使得按照它們在makefile中出現的順序讀取相同詞根長度的第一個匹配,但事實上,它按照它們發生的順序讀取了相同詞根長度的匹配_all_在makefile中。感謝您向我展示燈光! – dpritch