前: Prerequisite Macros, 上: Dependencies Between Macros


9.4.2 推奨される順序

両方が呼び出されても,片方がもう一方が呼び出されることを要求しな い場合,もう一方のマクロの前に実行するすべきマクロもあります.例えば,C コンパイラの動作を変更するマクロは,Cコンパイラを実行するあらゆるマクロ の前に呼び出されるべきです.これらの依存性の多くはドキュメントに記されて います.

Autoconfは,これらの依存性を持つマクロがconfigure.acファイルで順 序が間違って現れるとき,ユーザに警告するAC_BEFOREを提供しています. 警告は,configure.acからconfigureを作成するときに発生し ますが,configure実行時には発生しません.

例えばAC_PROG_CPPは,Cコンパイラに`-E'オプションが与えられて いるとき,Cプリプロセッサが実行可能かどうか調査します.従って,使用され るCコンパイラが変更されるAC_PROG_CCのようなマクロの後で,それは呼 び出すべきです.そのため,AC_PROG_CCは以下を含んでいます.

     AC_BEFORE([$0], [AC_PROG_CPP])dnl

これで,AC_PROG_CCが呼び出されたとき,AC_PROG_CPPが既に呼 び出されている場合,ユーザに警告します.

— マクロ: AC_BEFORE (this-macro-name, called-macro-name)

called-macro-nameが既に呼び出されている場合,M4は標準エラー出力に 警告メッセージを出力します.this-macro-nameは,AC_BEFOREを 呼び出すマクロの名前にすべきです.マクロcalled-macro-nameは, AC_DEFUNを使用して定義されている,または呼び出されていることを示 すAC_PROVIDEの呼び出しを含んでいる必要があります.