1

我正在为我的库编写一些简单的测试,并且我试图让我的 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......

4

1 回答 1

2

没有办法做到这一点。

如果需要,您可以引入一个随处使用的变量:

general_stuff = whatever.vala
x_SOURCES = $(general_stuff) ...
y_SOURCES = $(general_stuff) ...
于 2013-06-01T19:44:15.957 回答