我正在为我的库编写一些简单的测试,并且我正在努力保持我的Makefile.am文件尽可能整洁,所以我试图依赖default _SOURCES功能。这是我目前的Makefile.am:
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功能),但我需要将common.vala包含为好。实际上,我要编写的每个测试程序都希望在源文件列表中包含这个common.vala。有没有办法让我不必为我写的每个测试程序指定*_SOURCES
?
奖励:他们都希望在他们的*_LDADD
中拥有mylib.la,所以再一次,我有没有办法在全球范围内实现这一目标,而不是必须为每个测试程序指定它?
编辑:我发现您只需使用不带前缀的LDADD
即可将其应用于每个已编译的程序。这有点帮助...现在找出*_SOURCES
...
答案 0 :(得分:2)
有办法实现这一目标。
如果需要,您可以引入一个随处可用的变量:
general_stuff = whatever.vala
x_SOURCES = $(general_stuff) ...
y_SOURCES = $(general_stuff) ...