次: , 前: ANSI, 上: Programs


7.16 自動的な依存性追跡

プロジェクトで,インクルードファイルの依存性が変化するときはいつでも, 絶えずMakefile.inを更新することは開発者として辛いことも多いもの です.Automakeは自動的に依存性の変更を追跡する方法を提供しています.

Automakeは常に,システムヘッダを含むコンパイルに対する完全な依存性を使 用します.Automakeのモデルは,依存性の評価がビルドの副作用になるという ものです.つまり依存性は,depcompと呼ばれる特別なラッパプログラ ムを通じてすべてのコンパイルを実行することで求められます. depcompは,多くの異なるCとC++コンパイラで,それが要求する書式で 依存情報の生成させるように上手に扱う方法を理解してます.automake -aで,depcompをソースツリーにインストールします. depcompがコンパイラの正しい呼び出し方が分からない場合,依存性の 追跡はビルドで利用不可能になるだけです.

これまでのバージョンのAutomakeの経験上1,configureが非常に多くなるにつれ,管理者のシステムでのみ生 成される依存性が信頼できないことを我々に教えてくれました.そのため, Automake はビルド時に依存性を追跡することをその代わりに実装しました.

自動的な依存性の追跡で,変数AUTOMAKE_OPTIONSno-dependenciesを書くことや,AM_INIT_AUTOMAKEへの引数と してno-dependenciesを渡すこと(これは推奨されるべき方法です)が無 くなるはずです.そうしない場合は,automake-iオプション を用いて呼び出してください.依存性の追跡はデフォルトで利用可能です.

パッケージを構築している人々も,--disable-dependency-trackingを 用いてconfigureすることで,依存性の追跡を利用不可能にすることを選択す ることが可能です.


脚注

[1] Automakeでの自動的な依 存性の追跡に関する歴史と経験についての情報は, http://sources.redhat.com/automake/dependencies.htmlを参照して ください.