次: , 前: Defining Symbols, 上: Results


7.2 出力変数の設定

テストの結果を記録するもう一つの方法は,出力変数(output variables) を設定することで,それは,configureが出力したファイルの中に, シェル変数の値を代入することです.以下の二つのマクロで新しい出力変数を作 ります.利用可能な出力変数のリストは,See Preset Output Variables.

— マクロ: AC_SUBST (variable, [value])

シェル変数から出力変数を作成します.AC_OUTPUTは,出力ファイルの変 数variableに代入します(通常,一つ以上のMakefileです).これ は,AC_OUTPUTが呼び出されたとき,入力ファイルの `@variable@'のインスタンスをシェル変数variableが持つ 値でAC_OUTPUTが置換することを意味します.variableのこの値は 改行のリテラルを含むべきではありません.

valueが与えられている場合,さらにそれもvariableに渡されます.

— マクロ: AC_SUBST_FILE (variable)

シェル変数から出力ファイルを作成するもう一つの方法です.AC_OUTPUT で,シェル変数variableで名付けられたファイルの内容を出力ファイルに 挿入します(代入ではありません).これは,AC_OUTPUTが呼び出されたと き,シェル変数variableの名前のファイルの内容で, (Makefile.in)のような出力ファイルの`@variable@'のイ ンスタンスを,AC_OUTPUTが置換することを意味します.挿入するファイ ルがない場合には,変数/dev/null に設定します.

このマクロは,Makefileに特別な依存を含むフラグを挿入したり,特定 のホストやターゲットのためのmakeディレクティブをMakefileに 挿入するとき役に立ちます.例えば,configure.ac に以下を含ませます.

          AC_SUBST_FILE(host_frag)
          host_frag=$srcdir/conf/sun4.mh
     

そしてMakefile.inに以下を含ませます.

          @host_frag@
     

異なる環境変数でconfigureを実行することは非常に危険です.例え ば,ユーザが`CC=bizarre-cc ./configure'を実行した場合,キャッシュ, config.h,そして多くの出力ファイルは,Cコンパイラが bizarre-ccだということに依存します.理由があって,ユーザが再び ./configureを実行した場合や,`./config.status --recheck' でそれが実行される場合(See Automatic Remaking. see config.status Invocation),コンフィグレーションは矛盾し,二つの異なるコンパイラに依存 した結果で構成されます.

上記の`CC'のように,この状況に影響する環境変数は貴重な変数 (precious variables)と命名されていて,AC_ARG_VARのようなもので宣 言することが可能です.

— マクロ: AC_ARG_VAR (variable, description)

variableを貴重な変数として宣言し,`./configure --help'の可変 部分にそのdescriptionを含めます.

貴重とは,以下のことを意味します.