2013-04-13 62 views
1

我正在寫我的圖書館一些簡單的測試,我試圖讓我的Makefile.am文件整齊,我可以,所以我想依靠default _SOURCES功能。這是我目前Makefile.am:的Automake:在默認的來源包括額外的文件

AM_CPPFLAGS = $(MYLIB_CFLAGS) -I.. 
AM_DEFAULT_SOURCE_EXT = .vala 
AM_LDFLAGS = $(MYLIB_LIBS) 
VALAFLAGS = -D GLIB_2_32 --vapidir=../ --pkg mylib_internal --pkg libsoup-2.4 --pkg json-glib-1.0 --pkg gee-1.0 

TESTS = autocomplete 
check_PROGRAMS = autocomplete 

autocomplete_LDADD = ../mylib.la 
autocomplete_SOURCES = autocomplete.vala common.vala 

CLEANFILES = *.c 

如果我離開了autocomplete_SOURCES變量,autocomplete.vala自動使用,這是偉大的(按照默認_SOURCES功能),但我需要包括常見.vala也是如此。實際上,我要寫的每個測試程序都希望在其源文件列表中包含這個common.vala。有沒有辦法對我來說,沒有指定*_SOURCES爲每一個測試程序,我寫的?

獎勵:他們都希望在他們的*_LDADD中也有mylib.la,那麼我是否有辦法在全球範圍內完成這項工作,而不必爲每個測試程序都指定它?

編輯:我想你可以只使用LDADD沒有前綴讓它適用於每個編譯的程序。這有助於有點...現在要弄清楚*_SOURCES ...

回答

2

沒有辦法做到這一點。

您可以介紹,如果你想您使用無處不在,一個變量:

general_stuff = whatever.vala 
x_SOURCES = $(general_stuff) ... 
y_SOURCES = $(general_stuff) ...