Previous: Information sources, Up: New ports


13.1.2 ライブラリ内部の依存性のサポートの移植

バージョン1.2c以降,libtoolは,Toshio Kuratomi badger@prtr-13.ucsc.eduのパッチのおかげで,ライブラリ内部の依 存性を可能とする機能が再導入されてるプラットフォームもあります.パッチ に含まれるメッセージの短いバージョンは以下のようになります.

基本的な体系はこのようになります.libtool.m4で,libtoolを書いて いる人は,‘$deplibs’が‘$archive_cmds’のどこかに含まれている こと,また,変数‘$deplibs_check_method’と, ‘deplibs_check_method’がファイルマジックの場合は ‘$file_magic_cmd’が設定されていることを確認します.

deplibs_check_method’は,以下の五つの内の一つのはずです.

file_magic [regex]
ライブラリリンクパスで正しいlibnameを持つライブラリを探します.そして, ライブラリで‘$file_magic_cmd’を実行し,正規表現regexに一致 することを調査します.file_magic_test_filelibtool.m4に よって設定されているとき,正規表現がその出力と一致するかどうかを検証し, それ以外ではユーザが警告を受けるようにするため,それは ‘$file_magic_cmd’への引数として使用されます.
test_compile
ライブラリリストの出力以外とプログラムがリンク可能かどうかのみを調査し, それらがlddの出力でリストアップされていることを調査します.それ は現在,使用されていないので,将来は打ち切る可能性があります.
pass_all
調査せず,すべて通過します.例えばDEC OSF/1 3 と 4のような,デフォルト で,コードが位置に依存せず,ライブラリ内部の依存性がダイナミックリンカ で適切にサポートされているプラットフォームで,これは動作するでしょう.
none
deplibsをdeplibs=""に再設定します.そうすれば,‘archive_cmds’は, すべてのプラットフォームでdeplibsを含むはずですが,deplibは必要がなけ れば使用されません.
unknown
libtool.m4で優先されない場合,すべてのシステムでデフォルトです. それは‘none’と同じですが,正しい値が何か,我々が本当に知らないこ とを文章化していて,我々はそれを改善するパッチを歓迎します.

ltmain.inで,我々は本当に一生懸命作業しました.それは, (libname_spec等の評価を使用するための変数を設定/リリース行う)小さな初 期化と移植,そして使用するメソッドを決定するケース文です.これは,実際 にはコードです... もう少し凝縮できれば良かったのですが,関数呼び出し を用いずにできるとは思えませんでした.私はほとんどの(ループの外に出す 等の)最適化を行いましたが,余分なものがあるかもしれません.明確な最適 化を考える前に,前進を止め,発見されたバグに対して作業すべきだと考えま した.