Next: Pointers, Previous: Automake, Up: The GNU Build System
他のプログラムでも,これまでの作業の成果から利益を得ることを可能にするた
め,プログラムだけでなくライブラリをビルドしたいことも頻繁にあるでしょう.
理想的には,共有(動的にリンクされる)ライブラリを生成したいと考え,
それは,複数のプログラムからディスクやメモリに同じものを複製せずに使用す
ることが可能で,リンクされているプログラムに依存せずに更新可能だからです.
しかし,移植性の高い共有ライブラリは悪夢の元です — それぞれのシステム
は,独自の互換性のないツール,コンパイラフラグ,そして魔法の呪文がありま
す.幸いにもGNUは解決方法を提供しています.それは,
Libtoolです.
Libtoolは,共有ライブラリのビルドに関するすべての要求を処理し,現時点で
は,移植性を扱うための唯一の方法だと思われます.また,以下のよう
な頭痛の種も扱います.それは,共有ライブラリの様々な接尾子を扱う
Makefile
ルールの相互作用,以前にスーパーユーザによってインストー
ルされた共有ライブラリとの信頼できるリンク,そして,整合性の高いバージョ
ン管理システムの提供です(それは,ライブラリの異なるバージョンを,バイナ
リ互換性を壊さないようにインストールし更新することを可能にするためのもの
です).しかしLibtoolは,Autoconf同様に,単独で使用することは可能ですが,
ほとんどは単純にAutomakeと組み合わせて利用されます — そこで,Libtool
は共有ライブラリが必要なときに自動的に使用され,そして使用者はその構文を
知っている必要はありません.