Next: Library Functions, Previous: Files, Up: Existing Tests
以下のマクロは,C,C++やFortranのライブラリアーカイブファイルの存在を調 査します.
現在の言語に依存して(see Language Choice),テストプログラムが関数利 用に必要なライブラリlibraryとリンク可能かどうかを調査することで,C, C++やFortranの関数functionが利用可能であることを確認します. libraryは,ライブラリのベース名です.例えば,‘-lmp’を調査する ために,libraryの引数として‘mp’を使用します.
action-if-foundは,ライブラリとのリンクが成功した場合に実行するシェ ルコマンドのリストです.action-if-not-foundは,リンクが失敗した場 合に実行するシェルコマンドのリストです.action-if-foundが指定され ていない場合,デフォルトで‘-llibrary’を
LIBS
に加え, ‘HAVE_LIBlibrary’を(全て大文字で)定義します.このマクロは,ラ イブラリの依存が連続的なテストの自然な副作用で十分になるように,右から左 (最小依存から最大依存)の方法でLIBS
のビルドサポートを試みます.ラ イブラリの順序に注意が必要なリンカもあるので,LIBS
が生成される順 序は,ライブラリの信頼できる検出にとって重要です.libraryとのリンクの結果が,追加のライブラリとのリンクで解決される 未解決のシンボルとなる場合,これらのライブラリを,‘-lXt -lX11’ のよ うに,スペースで区切られたother-libraries引数で与えてください.そ うしない場合,テストプログラムとのリンクが未解決のシンボルで常に失敗する ので,このマクロはlibraryの存在の検出に失敗します. other-libraries引数は,まだ
LIBS
に無い,その他のライブラリの 一つを調査することが望ましい場合は制限があります.
まだ利用可能ではない,functionを定義しているライブラリを探します. これは,最初にライブラリ無しで,その後でそれぞれのライブラリを search-libsにリストアップしている ‘AC_LINK_IFELSE([AC_LANG_CALL([], [function])])’の呼び出しと 等価です.
functionが含まれている最初のライブラリに対して, -llibraryを
LIBS
に追加し,action-if-foundを実 行します.関数が見つからない場合,action-if-not-foundを実行します.libraryとのリンクの結果が,未解決のシンボルで,追加のライブラリと のリンクで解決できる場合,これらのライブラリを,‘-lXt -lX11’の様に, スペースで区切られたother-libraries引数で与えてください.そうしな ければ,テストプログラムとのリンクが,常に未解決のシンボルで失敗するので, このマクロはlibraryの存在の調査に失敗します.