ここでは、静的ライブラリを使用すると仮定します。これにより、作業が簡単になります。
あなたの共通ライブラリには独自のconfigure.ac
とMakefile.am
があり、おそらく の下にライブラリを定義しているように見えますnoinst_LIBRARIES
。
ライブラリを使用するプロジェクトには、次のような svn external を介して共通ライブラリがインポートされます。
foo/
foo/configure.ac
foo/Makefile.am
foo/...
foo/libcommon/
foo/libcommon/configure.ac
foo/libcommon/Makefile.am
foo/libcommon/...
foo のconfigure.ac
に、 への呼び出しを追加しますAC_CONFIG_SUBDIRS([libcommon])
。fooMakefile.am
に、 を追加しSUBDIRS = libcommon
ます。この 1 つのレベルを除いて、foo と libcommon の両方が非再帰的である可能性があります。foo'sMakefile.am
では、次のようなものを追加しますLDADD = libcommon/libcommon.a
。のようなものを追加する必要がある場合もありますAM_CPPFLAGS = -I$(srcdir)/libcommon/include
。
次に、foo を構成すると、libcommon が構成されてビルドされます。ライブラリが noinst として宣言されているという事実は、静的にリンクされるだけで、ファイルシステムにはインストールされないことを意味します。