[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Automakeは単純な種類の条件文をサポートする。
条件文を使う前に、configure.in
ファイル(see section Automakeと共に与えられるAutoconfのマクロ)でAM_CONDITIONAL
を使っ
てそれを定義しなければならない。AM_CONDITIONAL
マクロは二つの引数
を受け取る。
AM_CONDITIONAL
への最初の引数は条件文の名前である。これは文字で始
まり、文字や整数、アンダースコアだけを含む単純な文字列であるべきだ。
AM_CONDITIONAL
への二つ目の引数はシェルのif
文での利用に適した、シェ
ルの条件文である。その条件文はconfigure
が実行されるときに評価され
る。
条件文は典型的にはユーザがconfigure
スクリプトに与えるオプションに
依存している。ここにもしユーザが`--enable-debug'オプションを使えば
真である条件文の書き方の例がある。
AC_ARG_ENABLE(debug, [ --enable-debug Turn on debugging], [case "${enableval}" in yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac],[debug=false]) AM_CONDITIONAL(DEBUG, test x$debug = xtrue) |
ここに`Makefile.am'でこの条件文を使用する方法の例を示す。
if DEBUG DBG = debug else DBG = endif noinst_PROGRAMS = $(DBG) |
この平凡な例はまたEXTRA_PROGRAMS(see section プログラムの構築)を使って処理されても 良い。
if
文では単一の変数だけをテストして良い。else
文は省かれて良
い。条件文はどんな深さにでも入れ子にして良い。
Automakeの条件文はGNU Makeの条件文と同じではないことに注意せよ。Automake
の条件文は`configure'スクリプトによって設定時に点検され、
`Makefile.in'から`Makefile'への変換に影響する。それらは
`configure'に渡されたオプションと`configure'がホスト・システム
について発見した結果に基く。GNU Makeの条件文はmake
時に点検され、makeプロ
グラムに渡された変数や`Makefile'で定義された変数に基く。
Automakeの条件文はどんなmakeプログラムでも動作するだろう。
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.