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 に答える