次: , 前: Optional, 上: configure


5.3 aclocal.m4の自動生成

Automakeには,パッケージで使用可能な多くのAutoconfマクロがあります (see Macros).状況によってはAutomakeが実際に必要とするものもありま す.これらのマクロはaclocal.m4で定義する必要があります.さもな ければ,それらはautoconfでは見つからないでしょう.

aclocalプログラムは,configure.acの内容に基づいて自動的 にaclocal.m4ファイルを生成します.これは,Automakeが提供するマ クロを入手する便利な方法を提供し,それらを探し回る必要がないようになっ ています.aclocalのメカニズムで,他のパッケージに対して独自のマ クロを提供することも可能です(see Extending aclocal).また,カスタ ムマクロの独自セットを管理するためにそれを使用することも可能です (see Local Macros).

はじめに,aclocalはマクロ定義を探しながら見つかったすべての .m4ファイルをスキャンします(see Macro search path).それか らconfigure.acをスキャンします.最初のステップで見つかったマク ロの記述によって,マクロとマクロが要求するファイルをaclocal.m4 に書き込みます.

マクロ定義を含むファイルをaclocal.m4書くことは,通常こ のファイルのテキスト全体を,`#'と`dnl'コメントを含め,未使用 のマクロまで含めてコピーすることで実行されます.aclocalがコメン トを完全に無視するようにしたい場合は,コメントの最初に`##'を使用 して下さい.

aclocalが選択しているファイルがaclocal-I オプションで相対的なサーチパスで指定されているパッケージのサブディレク トリに存在するとき,aclocalはそのファイルがパッケージに属し ていると仮定し,aclocal.m4にコピーする代わりにm4_include を使用します.これで,パッケージはより小さくなり,依存性の追跡がより容 易になり,ファイルを自動的に配布物に含めるようになります.(例は, see Local Macros.) システム全体で,または絶対パスで検索され見つかっ たマクロはコピーされます.そのため,外部パッケージとして考慮する必要が ある相対的なディレクトリがあるときは,-I reldirの代わりに -I `pwd`/reldirを使用して下さい.

acinclude.m4の内容も,このファイルが存在する場合は自動的に aclocal.m4に含められます.我々は,新しいパッケージでの acinclude.m4の使用に反対します(see Local Macros).

aclocal.m4を調べている間,実際に利用されているマクロを追跡し, 記述されているが要望されていないすべてのマクロをaclocal.m4から 削除するため,aclocalautom4teを実行します(see Using Autom4te). autom4teautoconfと同じPATHにあることを期待され ています.その場所は,AUTOM4TE環境変数を使用して優先させること が可能です.