libtoolize
は Makefile に libtool(1) の機能を
付加するための標準的な方法を提供する。
もし autoconf や automake を使っているならば、
`configure.in' ファイルに AM_PROG_LIBTOOL の呼び出しを
追加すべきである。
このマクロを使うと `configure' スクリプトと ltconfig を
シームレスに統合できる。
aclocal プログラムは configure スクリプトに
AM_PROG_LIBTOOL 機能を自動的に付加する。
あなたの libtool.m4 のコピーを acinclude.m4 に
インクルードしておくことを推奨する。
なぜなら、あなたのマクロのバージョンと acinclude.m4 の
バージョンが合わない場合にユーザーが aclocal.m4 や configure を
リビルドすると、互換性のないマクロのために終了しないかもしれないからである。
マクロでは `Makefile.in' において Makefile の変数
top_builddir を定義する必要がある。
automake はこれを自動で行うが、
autoconf ユーザーは、この変数をビルドディレクトリのトップへの相対パスで
(`../..' といったように) 設定すべきである。
AM_PROG_LIBTOOL
-
ライブラリパッケージの名前によって、
共有/静的のどちらのライブラリをビルドするかをユーザーが指定できるように、
--enable-shared[=PACKAGE,...] をサポートする。
パッケージ名が `default' の場合、環境変数 PACKAGE にその名前がない
すべてのパッケージがマッチする。
デフォルトではこのマクロは、もし可能であれば、
共有ライブラリの使用を有効にする。
さらに静的ライブラリが共有ライブラリと衝突しなければ、
静的ライブラリの使用も有効にする。
AM_DISABLE_SHARED または AM_DISABLE_STATIC マクロを
呼び出すことにより、このデフォルトを変更することができる。
# ビルドプロセスが非常に長くなるので、
# ベータテストの間は共有ライブラリを無効にする。
AC_DISABLE_SHARED
AM_PROG_LIBTOOL
マクロは環境変数 LIBTOOL_DEPS も設定する。
この変数は libtool スクリプトが古くなったときに
自動的に更新するために使われる。
そのためには、configure.in に以下を加え、
AC_SUBST(LIBTOOL_DEPS)
さらに Makefile.in または Makefile.am に以下を加えること。
LIBTOOL_DEPS = @LIBTOOL_DEPS@
libtool: $(LIBTOOL_DEPS)
-
AC_DISABLE_FAST_INSTALL
-
デフォルトの動作を AM_PROG_LIBTOOL でなく
すべての最適化を無効にするよう変更し、インストールを高速化する。
ユーザーは --enable-shared と同じように、
--enable-fast-install[=PACKAGE,...] を指定することで
このマクロを上書きすることができる。
-
AC_DISABLE_SHARED
-
AM_PROG_LIBTOOL に対するデフォルトの動作を
共有ライブラリを無効とするように変更する。
ユーザーは --enable-shared を指定することにより、
このデフォルトの動作を更に変更することができる。
-
AC_DISABLE_STATIC
-
AM_PROG_LIBTOOL に対するデフォルトの動作を
静的ライブラリを無効とするように変更する。
ユーザーは --enable-static を指定することにより、
このデフォルトの動作を更に変更することができる。
-
AC_LIBTOOL_DLOPEN
-
パッケージが -dlopen または -dlpreopen を
使用するためには、このマクロを使用すること。
このマクロは AMPROG_LIBTOOL より前に呼ばれなければならず、
ダイナミックロード機能のチェックを有効にする。
さもなければ、libtool はプラットホームがダイナミックロードを
サポートしていないと仮定する。
-
AC_LIBTOOL_WIN32_DLL
-
パッケージが win32 プラットホーム上でクリーンな dll をビルドするように
移植された場合には、このマクロを使用すること。
このマクロは AMPROG_LIBTOOL より前に呼ばれなければならず、
リンクモードで -no-undefined が libtool に渡されなければならない。
これは通常、ライブラリデータアイテムが `__declspec(dllexport)' で
エクスポートされ、`__declspec(dllimport)' インポートされることを意味している。
このマクロが使用されないと、libtool はパッケージライブラリは
dll クリーンでないと仮定して、win32 ホスト上で静的ライブラリしか作らなくなる。
Makefile.am の例は libtool(1) を参照すること。