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.