Automake:在默认来源中包含额外文件

时间:2013-04-13 18:55:46

标签: automake

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

1 个答案:

答案 0 :(得分:2)

有办法实现这一目标。

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

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