[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

4. libtoolの呼び出し

libtoolプログラムは以下の構文を持ちます.

 
libtool [option]… [mode-arg]…

そして,以下のオプションを受け入れます.

` --config'

libtoolのコンフィグレーション変数を表示し終了します.

` --debug'

シェルスクリプトの実行の追跡を標準出力にダンプします.これは多くの出力を 生成するので,less(やmore)にパイプしたり,ファイルにリダイ レクトしたいかもしれません.

` -n'
` --dry-run'

あらゆるファイルを作成,編集,削除せず,libtoolで実行されるコマンドのみ を表示します.

` --features'

基本的なコンフィグレーションオプションを表示します.これは,パッケージが ビルドするライブラリを,スタティックまたは共有のいずれにするか決定する方 法を提供します.

` --finish'

`--mode=finish'と同じです.

` --help'

へルプメッセージを表示し終了します.`--mode=mode'が指定された 場合,modeの詳細へルプを表示します.

` --mode=mode'

処理モードとしてmodeを使用します.デフォルトで,処理モードは mode-argsから推測されます.

modeが指定された場合,それは以下の一つにする必要があります.

` compile'

ソースファイルをlibtoolオブジェクトにコンパイルします.

` execute'

インストールされていない,libtoolが生成したプログラムやライブラリを他の プログラムが使用できるように,自動的にライブラリパスを設定します.

` finish'

libtoolライブラリのシステムへのインストールを完全に行います.

` install'

ライブラリや実行形式をインストールします.

` link'

ライブラリや実行形式を作成します.

` uninstall'

インストールされたライブラリや実行形式を削除します.

` clean'

アンインストールされたライブラリや実行形式を削除します.

` --version'

ibtoolのバージョン情報を出力し終了します.

mode-argsは引数の変数の数で,それは処理モードの選択に依存します. 一般的に,それぞれのmode-argは,libtool自身ではなく,libtoolが呼び 出すプログラムで解釈されます.


4.1 コンパイルモード

コンパイルモードに対し,mode-argsは,`標準的な'オブジェクト ファイルを作成するとき使用するコンパイルコマンドです.これらの引数は,C コンパイラの名前で始まり,オブジェクトファイルのみを作成するための `-c'コンパイラフラグを含みます.

libtoolは,ソースファイル名からディレクトリ要素を削除して出力ファイル名 を決定し,ソースコードの接尾子(例えば,Cソースコードに対する`.c')を ライブラリオブジェクト接尾子`.lo'に置換します.

共有ライブラリをビルドする場合は,必要なPIC生成フラグがコンパイルコマン ドに置換されます.`-Wc,flag'と`-Xcompiler flag'を 使用したり,`-Wl,flag'と`-Xlinker flag'を使用した りして,それぞれ,コンパイラとリンカに指定したフラグを渡すことが可能です.

`-static'オプションが与えられている場合は,libtoolが `--disable-static'でコンフィグレーションされていた場合でも, `.o'ファイルがビルされてます.

現在は`-o'オプションが,完全にサポートされていることに注意してくだ さい.それがサポートされていないプラットフォームでは,(オブジェクトのロッ クと移動によって)エミュレートされるので,Makefileを少し編集するだけで libtoolは本当に簡単に使用できます.入力例は以下のようになります.

 
libtool gcc -c foo/x.c -o foo/x.lo

これは期待したことを行います.

しかし,コンパイラが`-c'と`-o'をサポートしていない場合,既存の `./x.o'を上書きせずに`foo/x.c'をコンパイルすることが不可能なこ とに注意してください.そのため,ソースファイル`./x.c'がある場合, `./x.o'(や`./x.lo')が,サブディレクトリのあらゆる`x.lo'の 後で再作成されることを確実にするため,`Makefile'に依存性の導入を必 ず行ってください.

 
x.o x.lo: foo/x.lo bar/x.lo

これは,プログラムやライブラリを作成するため,一時的に壊れた`x.o'の 使用を試みないことを確実にします.それは,`-c'と`-o'を同時にサ ポートするプラットフォームで,不必要な再コンパイルを引き起こすかもしれま せんが,それは,そうでないものに対して安全にする唯一の方法です.


4.2 リンクモード

リンクモードは,(ライブラリオブジェクトを含む)オブジェクトファイル と,その他のライブラリや作成された実行可能なプログラムをリンクします.

mode-argsは,いくつかのオブジェクトファイルから(`-o'フラグを 用いた)出力ファイルを作成するためにCコンパイラが使用するコマンドから成り 立ちます.

以下のmode-argsの組は特別に扱われます.

` -all-static'

output-fileがプログラムの場合,共有ライブラリと全くリンクしません. output-fileがライブラリの場合,スタティックライブラリのみ作成しま す.

` -avoid-version'

ライブラリとモジュールに対しバージョン管理(see section ライブラリインターフェースのバージョン)を避けよう とし,すなわち,バージョン情報は保存されず,シンボリックリンクも作成され ません.プラットフォームがバージョニングを要求する場合,このオプションは 効果がありません.

` -dlopen file'

ネイティブなdlopenがホストプラットフォームでサポートされていない場合 (see section dlopenモジュール)や,プログラムが`-static'や `-all-static'でリンクされている場合,`-dlpreopen file'と 同じです.それ以外では効果はありません.fileselfの場合, -export-dynamicを可能にする,または,`-dlpreopen self'に後退 することにより,libtoolはプログラムがそれ自身をdlopen可能であるこ とを確かめます.

` -dlpreopen file'

fileを出力プログラムにリンクし,そのシンボルを lt_preloaded_symbolsに含めます(see section dlopen).fileselfの場合,プログラムのシンボル自身がlt_preloaded_symbols に加えられます.fileforceの場合,libtoolは, lt_preloaded_symbolsが空であろうがなかろうが,常に定義済で あることを確実にします.

` -export-dynamic'

output-fileからのシンボルがdlsymで解決されることを可能にし ます(see section dlopenモジュール).

` -export-symbols symfile'

リンカにsymfileでリストアップされているシンボルのみエクスポートす るよう伝えます.シンボルファイルは`.sym'で終わるべきで,一行毎に一 シンボル名を含める必要があります.このオプションに効果がないプラットフォー ムがあります.デフォルトですべてのシンボルがエクスポートされます.

` -export-symbols-regex regex'

正規表現regexに一致するシンボルのみエクスポートされる以外, `-export-symbols'と同じです.デフォルトですべてのシンボルがエクスポー トされます.

` -Llibdir'

既にインストールされている,要求されているライブラリに対し,libdir を検索します.

` -lname'

output-fileはインストールされているライブラリ`libname' を要求します.このオプションはoutput-fileが実行形式でないときも要 求されます.

` -module'

dlopen可能なライブラリを作成します(see section dlopenモジュール).このオプショ ンはプログラムでは動作しません.モジュール名の'lib'の前置は不要です.し かし,名前の破壊を避けるため,'libname'と'name' パッケージで同時に使用し てはなりません.

` -no-fast-install'

実行形式output-fileの高速インストールモードを利用不可にします.プ ログラムをインストールする必要がないとき役に立ちます.

` -no-install'

インストール不可能で,そのためラップスクリプトが不要な実行形式 output-fileをリンクします.プログラムがビルドツリーでのみ使用され る場合,例えば,テストしたり他のファイルを生成するプログラムに対して役に 立ちます.

` -no-undefined'

output-fileが他のライブラリに依存しないことを宣言します.他のライ ブラリに依存する共有ライブラリを作成不可能なプラットフォームもあります (see section ライブラリ内部の依存).

` -o output-file'

指定されたオブジェクトとライブラリからoutput-fileを作成します.

` -release release'

ユーザが他より新しいバージョンを簡単に伝えられるよう,パッケージのリリー スreleaseで生成されたライブラリを指定します.このフラグを使用する 場合,パッケージの2つのリリースがバイナリ互換でないことを警告されます. バイナリ互換が欲しい場合,代わりに`-version-info'フラグを使用してく ださい(see section ライブラリインターフェースのバージョン).

` -rpath libdir'

output-fileがlibtoolライブラリの場合,それをビルドするために,バー ジョン情報currentrevision,そしてageを使用します (see section ライブラリインターフェースのバージョン).このフラグをパッケージのリリース情報の指定に使用せ ず,そのためには`-release'を参照してください.

` -R libdir'

output-fileがプログラムの場合,プログラムの実行時のパスを libdirに加えます.output-fileがライブラリの場合,ライブラリ がプログラムとリンクされるときは,常にlibdirが実行時のパスに加えら れるように,そのdependency_libsに-Rlibdirを加えます.

` -static'

output-fileがプログラムの場合,インストールされていない共有ライブ ラリとリンクしません.output-fileがライブラリの場合,スタティック ライブラリのみ作成します.

` -version-info current[:revision[:age]]'

output-fileがlibtoolライブラリの場合,それをビルドするために,バー ジョン情報currentrevision,そしてageを使用します (see section ライブラリインターフェースのバージョン).このフラグをパッケージのリリース情報の指定に使用せ ず,そのためには`-release'を参照してください.

` -Wl,flag'
` -Xlinker flag'

リンカ指定のフラグを直接リンカに渡します.

output-fileが`.la'で終わる場合,libtoolライブラリが作成され, それはライブラリオブジェクト(`.lo'ファイル)のみから作成される必要が あります.`-rpath'オプションは要求されません.現在の実装では, libtoolライブラリが他のインストールされていないlibtoolライブラリに依存す ることはできません(see section ライブラリ内部の依存).

output-fileが`.a'で終わる場合,標準的なライブラリはar と,おそらくranlibを使用して作成されます.

output-fileが`.o'や`.lo'で終わる場合,リロード可能なオブ ジェクトファイルは,(通常`ld -r'を用いて)入力ファイルから作成されま す.この手法は部分的なリンクと呼ばれることが多いです.

それ以外の場合,実行可能なプログラムが作成されます.


4.3 実行モード

`実行'モードに対し,ライブラリパスは自動的に設定され,プログラムは 実行されます.

mode-argsの最初は,プログラム名として扱われ,残りはプログラムの引 数となります.

以下のmode-argsの組は特別に扱われます.

` -dlopen file'

ライブラリパスにfileを含むディレクトリを加えます.

このモードは,あらゆる`-dlopen'フラグによって,ライブラリパス環境変 数を設定します.

すべてのargsがlibtoolの実行形式のラッパーの場合,それらは対応する インストールされていないバイナリの名前に変換され,それらが要求するすべて のライブラリディレクトリがライブラリパスに加えられます.


4.4 インストールモード

インストールモードでは,libtoolはmode-argsを,cpで始 まるインストールコマンドやBSD互換のinstallプログラムとして解釈し ます.

mode-argsの残りは,そのコマンドの引数として解釈されます.

コマンドが実行され,特権の不要な必要なインストール後のコマンドも完全に実 行されます.


4.5 フィニッシュモード

フィニッシュモードは,ユーザプログラムにlibtoolライブラリを配置し リンクできるよう,システム管理者のインストールを助けます.

それぞれのmode-argはライブラリのディレクトリの名前として解釈されま す.このコマンドの実行は,`--dry-run'オプションが役に立つように,スー パーユーザの特権を要求するかもしれません.


4.6 アンインストールモード

アンインストールモードはインストールされているライブラリ,実行形式, そしてオブジェクトを削除します.

mode-argの最初はファイルの削除に使用するプログラム名(通常は `/bin/rm')です.

残りのmode-argsは,(`-'で始まる)削除プログラムに対するフラグ,また は削除するファイル名です.


4.7 クリーンモード

クリーンモードはアンインストールされたライブラリ,実行形式,オブジェ クト,そして,それらに関連があるlibtoolの一時ファイルを削除します.

最初のmode-argは,ファイルを削除するために使用するプログラムの名前 (通常は`/bin/rm')です.

残りのmode-argsは削除プログラムに対する(`-'で始まる)フラグ,または 削除するファイル名です.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.