Next: Configuring, Previous: Makefile rules, Up: Integrating libtool
libtoolライブラリのサポートは,‘LTLIBRARIES’プライマリの下で実装 されています.
libtool配布物のdemoサブディレクトリの,Automake Makefile.amからの例は,以下のようになっています.
最初に,プログラムをlibtoolライブラリとリンクするため, ‘program_LDADD’変数のみを使用してください.
bin_PROGRAMS = hell hell.debug
# Build hell from main.c and libhello.la
hell_SOURCES = main.c
hell_LDADD = libhello.la
# Create an easier-to-debug version of hell.
hell_debug_SOURCES = main.c
hell_debug_LDADD = libhello.la
hell_debug_LDFLAGS = -static
フラグ‘-dlopen’と‘-dlpreopen’(see Link mode)は, program_LDADD変数で,より適切になります.残念ながら,リリース1.4 までのGNU automakeは,program_LDADD変数でこれらのフラグを受け入 れないため,以下で代用します.
program_LDADD = "-dlopen" libfoo.la
program_DEPENDENCIES = libfoo.la
(インストールされていない共有libtoolライブラリとのリンクを避けるため ‘-static’を使用するような)‘program’をリンクしている間, libtool に渡したいあらゆるフラグを詰め込むため,‘program_LDFLAGS’ 変数を使用することも可能です.
libtoolライブラリをビルドすることは,ほとんど冒険です... ‘-version-info’(see Versioning)オプションをlibtoolに渡すため, ‘libhello_la_LDFLAGS’を使用することに注意してください.
# Build a libtool library, libhello.la for installation in libdir.
lib_LTLIBRARIES = libhello.la
libhello_la_SOURCES = hello.c foo.c
libhello_la_LDFLAGS = -version-info 3:12:1
‘-rpath’オプションは,(noinst_LTLIBRARIESとしてリストアッ
プされるライブラリ以外)Automakeにより自動的に渡されるので,指定する必
要はありません.
詳細は,See Building a Shared Library.