Previous: autoheader Invocation, Up: Configuration Headers
autoheaderはconfigure.acを調査し,定義されているCプリプ
ロセッサシンボルを判定します.それは,AC_CHECK_HEADERS
や
AC_CHECK_FUNCS
等が定義しているシンボルに対するテンプレートを生成
する方法は知っていますが,あらゆる追加のシンボルをAC_DEFINE
してい
る場合,それに対するテンプレートを定義する必要があります.テンプレートが
無い場合,autoheaderはエラーメッセージとともに失敗します.
symbolに対するテンプレートを作成する最も簡単な方法は, ‘AC_DEFINE(symbol)’の引数にdescriptionを与えることです. Defining Symbolsを参照してください.以下のマクロの一つを使用するこ とも可能です.
autoheaderに,templateをそのままヘッダテンプレートファイ ルに含めるよう伝えます.このtemplateはkeyに関連付けされてい て,それは全ての異なるテンプレートを並べ替えし,それらのユニーク性を保証 するために使用されます.それは,
AC_DEFINE
されることが可能なシンボ ルにすべきです.例えば以下のようにします.
AH_VERBATIM([_GNU_SOURCE], [/* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE #endif])
autoheaderに,keyに対するテンプレートを生成するように伝 えます.このマクロは,descriptionが与えられたときの
AC_DEFINE
のような,標準的なテンプレートを生成します.例えば,以下のようにします.
AH_TEMPLATE([CRAY_STACKSEG_END], [Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. This function is required for alloca.c support on those systems.])これは,適切に正当化された記述を用いて,以下のテンプレートを生成します.
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. This function is required for alloca.c support on those systems. */ #undef CRAY_STACKSEG_END