ノード:Using Automake, 次:, 前:Makefile rules, 上:Integrating libtool



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.