Next: Libtool Modules, Previous: Conditional Libtool Sources, Up: A Shared Library
インストールされないlibtoolライブラリをビルドしたいときもあります.こ れらは,libtoolコンビニエンスライブラリ(libtool convenience libraries)と呼ばれ,通常多くのサブライブラリをカプセル化し,後でイン ストールされる大きな一つのライブラリにまとめるときに使用されます.
libtoolコンビニエンスライブラリは,noinst_LTLIBRARIES
,
check_LTLIBRARIES
,またはEXTRA_LTLIBRARIES
でも宣言されま
す.インストールされるlibtoolライブラリと異なり,それらはリンク時に
-rpath
フラグが不要です(実際,これが違うだけです).
noinst_LTLIBRARIES
でリストアップされているコンビニエンスライブ
ラリは,常にビルドされます.check_LTLIBRARIES
にリストアップされ
ているものは,make check
のときだけビルドされます.最後に,
EXTRA_LTLIBRARIES
でリストアップされているライブラリは,明示的に
はビルドされません.Automakeはそれらのビルドルールを出力しますが,ライ
ブラリがMakefileの依存性に表れない場合はビルドされません(これは,
EXTRA_LTLIBRARIES
が条件付きコンパイルで使用されるためです).
サブディレクトリのlibtoolコンビニエンスライブラリを,一つの中心となる libtop.laライブラリにまとめる設定例は以下のようになります.
# -- Top-level Makefile.am -- SUBDIRS = sub1 sub2 ... lib_LTLIBRARIES = libtop.la libtop_la_SOURCES = libtop_la_LIBADD = \ sub1/libsub1.la \ sub2/libsub2.la \ ... # -- sub1/Makefile.am -- noinst_LTLIBRARIES = libsub1.la libsub1_la_SOURCES = ... # -- sub2/Makefile.am -- # showing nested convenience libraries SUBDIRS = sub2.1 sub2.2 ... noinst_LTLIBRARIES = libsub2.la libsub2_la_SOURCES = libsub2_la_LIBADD = \ sub21/libsub21.la \ sub22/libsub22.la \ ...