Autoconfマクロは,M4組み込みのm4_define
マクロに似た
AC_DEFUN
マクロを使用して定義されています.マクロ定義に加える際,
AC_DEFUN
は,マクロを呼び出す順番を制限するために使用されるコード
を加えます(see Prerequisite Macros).
Autoconfマクロ定義は以下のようになります.
AC_DEFUN(macro-name, macro-body)
マクロに渡す引数は,`$1',`$2'等のように参照することが可能です. M4マクロを書く際の完全な情報は,See How to define new macros.
マクロが偶然前に定義されている場合の問題を避けるために, macro-bodyとmacro-nameの両方を,適切に引用符で囲んで いることを確かめてください.
それぞれのマクロには,そのプロトタイプと短い説明を付与するため,ヘッダの コメントを書くべきです.引数がデフォルト値の場合,そのプロトタイプを表示 してください.例えば以下のようにします.
# AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1]) # -------------------------------------- m4_define([AC_MSG_ERROR], [{ _AC_ECHO([configure: error: $1], 2); exit m4_default([$2], 1); }])
マクロに関するコメントは,ヘッダコメントに残すべきです.その他のほとんど のコメントは,勝手にconfigureに入るので,コメントを導入するために `#'を使用し続けるだけで結構です.
ピュアなM4コードに関して,非常に特殊なコメントがある場合は,コメントを
configureとヘッダコメントに入れる意味がないので,組み込みの
dnl
を使用してください.それでM4は,次の改行までのテキストを廃棄し
ます.
dnl
がコメントの導入に必要になることは滅多にないということを覚えて
おいてください.dnl
は,AC_REQUIRE
のような,出力を生成しな
いマクロに続く改行を除去するときに,より役に立ちます.