[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

11. Recreating a Configuration

configureスクリプトは`config.status'という名前のファイルを つくります。このファイルには、前回パッケージが作成されたときに どういう設定のためのオプションが指定されたのかが記述されています。 このファイルはshellスクリプトで、実行されると、再度おなじ設定を することができます。

`config.status'に`--recheck'オプションをつけて実行することで、 `config.status'自体を更新することができます。 このオプションはconfigure自体を変更したときに有効です。 そのような場合、テストの結果は前回と今回で異なっている可能性がありますから。 `--recheck'オプションをつけて`config.status'を実行した場合、 前回つけたのとおなじ引数、それから`--no-create'オプションと `--no-recursion'オプションをつけてconfigureが実行されます。 これらのオプションは、`config.status'が実行されるのを防ぎ、 `Makefile'や他のファイルが更新されないようにし、 サブディレクトリのconfigureが実行されないようにします。 (このため、`Makefile'の中から`config.status'が 呼べるようになっています。例題はsee section 3.3.3 Automatic Remaking参照)

`config.status'は`--help'と`--version'のふたつの オプションも受け付けます。 `--help'をつけると、`config.status'のオプションの 概説を出力します。`--version'をつけると、Autoconfの バージョンと、config.statusを作るときに使われた configureのオプションを出力します。

`config.status'は、いくつかの環境変数を参照して動作を変更します:

Variable: CONFIG_SHELL
`--recheck'をつけたときconfigureを実行する際に、 使うべきshellを指定します。Bourne shell互換である必要があります。 デフォルトは`/bin/sh'です。

Variable: CONFIG_STATUS
設定を記録するためのshellスクリプトの名前です。 デフォルト値は`./config.status'です。この環境変数は あるパッケージが他のパッケージの一部を使っていて、 それらが別々に管理されているためconfigureスクリプトを 統合できない場合などに役立ちます。

以下の環境変数を使うことで、別々に配布されるパッケージが configureで求めたテスト結果を共有することができます。 あるパッケージが他のパッケージ(たとえば共有ライブラリ)の必要とする OS機能のsupersetを要求している場合に役立ちます。 以下の環境変数を使うと、`config.status'に`configure.in'で 指定された以外のファイルを生成させることができます。 このため、生成されたファイルを他のパッケージから使うことができるのです。

Variable: CONFIG_FILES
`@variable@'の置換を行うべきファイル名。 デフォルトは`configure.in'でAC_OUTPUTに与えられた引数です。

Variable: CONFIG_HEADERS
Cの#defineディレクティブの置換を行うべきファイル名。 デフォルトはAC_CONFIG_HEADERに与えられた引数です。 AC_CONFIG_HEADERマクロが使われていない場合、 `config.status'はこれを無視します。

上記の環境変数を使うことで、一部のファイルだけを再生成するような `Makefile'のルールを記述することができます。 例えば、see section 3.3.3 Automatic Remakingで挙げたルールでは、 `configure.in'が新しくなったときには`config.status'が 2回呼ばれます。もしこれが気に入らない場合、各ファイルをひとつづつ 更新するようなルールを記述することができます(訳註: かなり意訳):

 
config.h: stamp-h
stamp-h: config.h.in config.status
        CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
        echo > stamp-h

Makefile: Makefile.in config.status
        CONFIG_FILES=Makefile CONFIG_HEADERS= ./config.status

(`configure.in'がAC_CONFIG_HEADERマクロを使っていない場合、 makeルール内でCONFIG_HEADERSを指定する必要はありません)


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on January, 21 2003 using texi2html