最終的なヘッダファイルが見つかるように,コメントとフックとして使用される
#undef
宣言を含んでいるテンプレートファイルを,配布物に含めるべき
です.例えば,configure.acで以下のように呼び出します.
AC_CONFIG_HEADERS([conf.h]) AC_CHECK_HEADERS([unistd.h])
conf.h.inで以下のようなコードを書きます.unistd.hがあるシ ステムでは,configureは`#define' `HAVE_UNISTD_H' を1 にします.それ以外のシステムでは,行全体がコメントアウトされます(そのシ ステムの場合,シンボルは前もって定義されません).
/* Define as 1 if you have unistd.h. */ #undef HAVE_UNISTD_H
`#undef'が最初の列にあり,`HAVE_UNISTD_H'の後に空白すらないこ とに注意してください.その後で,プリプロセッサ命令を使用しているコンフィ グレーションヘッダをデコードすることが可能です.
#include <conf.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* We are in trouble. */ #endif
`#undef'の代わりに`#define'を用いている,古い形式のテンプレー トの使用は,強く反対します.`#undef'と同じ行にコメントがある古いテ ンプレートも同様です.とにかく,プロセッサマクロにコメントを書くのは,決 してよい考えではありません.
テンプレートヘッダを更新し続けることは退屈な作業なので,それを生成するた めにautoheaderしてもかまいません.autoheader Invocation を参照してください.