Next: , Previous: Header Templates, Up: Configuration Headers


4.8.2 config.h.inを生成するためautoheaderを使用する

autoheaderプログラムは,configureが使用するためのC の‘#define’宣言のテンプレートファイルを作成することが可能です. configure.acAC_CONFIG_HEADERS(file)を呼び出す場合, autoheaderfile.inを作成します.複数のファイルが 引数で与えられている場合,最初のファイルを使用します.それ以外の場合, autoheaderconfig.h.inを作成します.

この作業を行なうために,使用する可能性がある全てのシンボルを記述すること をautoheaderは必要とします.すなわち,少なくとも,一つの AC_DEFINEAC_DEFINE_UNQUOTEDが,それぞれのシンボルに対し て三番目の引数を用いて呼び出されている必要があります(see Defining Symbols).更に,AC_DEFINEの最初の引数をリテラルにする必要がある という制約があります.Autoconfの組み込みテストで定義されている全てのシン ボルは,既に適切に記述されているということに注意してください.独自に定義 したものだけ記述する必要があります.

autoheaderがなぜ必要か不思議に思うかもしれません.つまり,なぜ configureは,スクラッチからconfig.hを作成する代わりに, config.hを生成するためにconfig.h.inへの“patch”を必要とす るのでしょうか?さて,全てがロックされたとき,autoheaderを管理 している時間が無駄になるというのが答えです.直接config.hを生成す ることが,必要なことの全てです.しかし,うまくいかないときは, autoheaderの存在に感謝することになるでしょう.

シンボルが記述されているという事実は,config.hに意味があることを 調査するために重要です.#defineされる(またはされない) シン ボルがうまく定義されているリストがあるという事実もまた, configureが実行不可能な環境にパッケージを移植している人には重 要です.彼らは,空白で埋め尽くす必要しかありません.

では,要点に戻りましょう.autoheaderの呼び出し...

引数をautoheaderに与えた場合,configure.acの代わりにそ のファイルを使用し,config.h.inの代わりに標準出力にヘッダファイル を書き出します.‘-’引数をautoheaderに与えた場合, configure.acの代わりに標準入力から読み込み,標準出力にヘッダファ イルを書き出します.

autoheaderは以下のオプションを受け入れます.

--help
-h
コマンドラインオプションの概要を出力して終了します.
--version
-V
Autoconfのバージョンナンバーを出力して終了します.
--verbose
-v
処理しているステップを報告します.
--debug
-d
一時的なファイルを削除しません.
--force
-f
入力ファイルよりテンプレートファイルが新しい場合でも,それを再生成します.
--include=dir
-I dir
dirをインクルードパスの後に追加します.複数回の呼び出しで累積され ます.
--prepend-include=dir
-B dir
dirをインクルードパスの前に追加します.複数回の呼び出しで累積され ます.
--warnings=category
-W category
category(実際にはカンマで分けられたリスト)に関連する警告を報告しま す.現在のカテゴリには,以下のものが含まれています.
obsolete
時代遅れの構成物の使用を報告します.
all
全ての警告を報告します.
none
何も報告しません.
error
警告をエラーとして扱います.
no-category
categoryに分類されている警告を利用不可能にします.