Autoconfが生成したconfigureスクリプトは,Cコンパイラとその特徴 をデフォルトで調査します.他のプログラム言語を使用するパッケージ(一つ以 上で,例えば,CとC++)は,それぞれの言語のコンパイラの特徴をテストする必 要があります.以下のマクロはconfigure.ac内のそれ以降のテストで使 用されるプログラミング言語のコンパイラを決定します.
languageで指定されている,コンパイラ,プリプロセッサ,そしてファイ ル拡張子をコンパイルテストで使用します.
サポートされている言語は以下のとおりです.
- `C'
CC
とCPP
を使用してコンパイルテストを行ない,テストプログラ ムでは.cの拡張子を使用します.コンパイルフラグを使用します.CPP
ではCPPFLAGS
,CC
ではCPPFLAGS
とCFLAGS
の両方を使用します.- `C++'
CXX
とCXXCPP
を使用してコンパイルテストを行ない,テストプロ グラムでは.Cの拡張子を使用します.コンパイルフラグを使用します.CXXPP
ではCPPFLAGS
,CXX
ではCPPFLAGS
とCXXFLAGS
の両方を使用します.- `Fortran 77'
F77
を使用してコンパイルテストを行ない,テストプログラムでは .fの拡張子を使用します.コンパイルフラグを使用します.FFLAGS
です.- `Fortran'
FC
を使用してコンパイルテストを行ない,テストプログラムでは .fの拡張子(またはAC_FC_SRCEXT
で設定されているもの)を使用し ます.コンパイルフラグを使用します.FCFLAGS
です.
現在の言語を(
AC_LANG
に設定するように)スタックに記録してから, languageを選択します.このマクロとAC_LANG_POP
を,一時的に特 定の言語に切替える必要があるマクロで使用してください.
AC_LANG_PUSH
で設定するように,スタックのトップに保存されている言 語に選択し,スタックからそれを削除します.language与えられている場合,それは言語をそのまま指定します. 分かっているときは,Autoconfが間違いを検出するので(case...にすべきで すが),それを指定することは良い考えです.
AC_LANG_PUSH(Fortran 77) # Perform some tests on Fortran 77. # ... AC_LANG_POP(Fortran 77)
現在の言語がlanguageであることを十分に調査します.言語指定のマクロ で不適切な言語での呼び出しを避けるため使用すべきです.
このマクロは,autoconf時のみで実行され,configure時 に時間がかかることはありません.残念ながら,Autoconfは二つのレイヤーの言 語があるため1,マクロの
AC_LANG_PUSH
/AC_LANG_POP
は“最適化” されず,そのため,できるだけコードのラッパーを行なうために それらを使用することを避け,代わりに,ユーザがマクロを現在の言語で実行す ることを要求し,AC_LANG_ASSERT
で調査するようにして下さい.いずれ にせよ,Fortran 77コンパイラの結果を期待している,ユーザが実行している Fortranマクロを理解する助けとなるでしょう....
現在のテストに使用されるプリプロセッサが見つかることを保証します.現在の 言語に依存して,
AC_PROG_CPP
またはAC_PROG_CXXCPP
のいずれか の引数を用いて,AC_REQUIRE
(see Prerequisite Macros)を呼び出し てください.