我正在为我的库编写一些简单的测试,并且我试图让我的 Makefile.am 文件尽可能整洁,所以我试图依赖默认的 _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
我编写的每个测试程序指定?
奖励:他们也都希望在他们的文件中包含 mylib.la *_LDADD
,所以,我有没有办法在全局范围内完成此任务,而不必为每个测试程序指定它?
编辑:我发现您可以LDADD
不使用前缀就可以将其应用于每个已编译的程序。这有点帮助......现在弄清楚*_SOURCES
......