次: , 前: Makefile rules, 上: Integrating libtool


5.2 libtoolと共にAutomakeを使用する

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変数でこれらのフラグを受け入 れないため,以下で代用します.

(インストールされていない共有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.