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

1. Introduction

 
物理学者、エンジニアとコンピュータ科学者が神の性質を論じていました。「確
かに物理学者だ」と物理学者が言いました。「なぜなら、創造の早いうちに神が
光を作った。ご存じのように、マックスウェル方程式、電磁波の二重の性質、相
対論者の結果...」。「エンジニアだ!」とエンジニアは言いました。「なぜ
なら、光を作る前に神はカオスを土地と水に分けた。それには大量のエンジニア
が必要で、大量の泥を処理し、液体から固体を正しく分離し...」。コンピュー
タ科学者は叫んだ。「そしてカオス、それはいったいどこからきたと思いますか。
ふーむ?」

---詠み人知らず

Autoconfは、各種UNIX系システムにあわせてソースコードパッケージを 設定(configure)するためのshellスクリプトを自動生成するツールです。 Autoconfによって生成された自動設定スクリプトは、実行されるときには Autoconfとは独立に動きます。このため、自動設定スクリプトのユーザは Autoconfを持っている必要がありません。

Autoconfによって生成される自動設定スクリプトは、ユーザの介入を 必要としません。普通はシステム種別を引数として指定する必要も ありません。引数を求めたりするかわりに、ソフトウェアパッケージが使う 可能性のあるOSの機能が存在するかどうかがひとつづつチェックされます。 (各チェックの前に、何をチェックしているのかが1行メッセージとして 表示されます。このため、ユーザはスクリプトの実行を待っている間さほど 退屈せずにすみます) 結果として、ターゲットが通常のUNIX系のOSよりもカスタマイズされていたり、 (BSD系とSVR4系の)融合されたOSだったりしても、スクリプトはターゲットOSを うまく扱うことができます。各々のUNIX系OSについて、どの機能がサポート されているかをファイルに記録したりする必要はありません。

Autoconfは、Autoconfを用いる各ソフトウェアパッケージについて、 自動設定スクリプトを作成します。自動設定スクリプトは各パッケージが 必要とする、または用いることのできるOSの機能を並べた テンプレートファイルから生成されます。 OSの機能を検出して反応するshellスクリプトが書けたなら、 Autoconfはそのshellスクリプトを複数のソフトウェアパッケージで 共有する機構を持っています。もし後でshellスクリプトを修正する 必要が生じた場合でも、定義を1箇所だけ変更すればいいようになっています。 各ソフトウェアパッケージの自動生成スクリプトを再生成すれば、 shellスクリプトへの修正が反映されます。

MetaconfigパッケージはAutoconfと似た目的をもっていますが、 Metaconfigによって生成されるスクリプトはユーザの介入を必要とし、 大きなソースツリーを設定する場合には不便です。 Metaconfigの生成するスクリプトと違い、Autoconfはクロスコンパイルの 設定も扱うことができます(設定ファイルを注意深く書けば)。

移植性の高いソフトウェアパッケージを作るためには、Autoconfの してくれないことがいくつか必要になります。例えば、各ターゲット プログラムのための`Makefile'の自動生成や、システムに欠けている 標準ライブラリ関数やヘッダファイルを補う、などです。これらを自動化 するための作業は現在進行中です。

Autoconfを使う場合、C言語のプログラムで#ifdefして使うシンボルの 名前に一部制限が生じます(see section Preprocessor Symbol Index)。

Autoconfはスクリプトの生成のためにGNU m4を必要とします。 Autoconfは一部のUNIXについてくるm4にはない機能を使っています。 また、Autoconfは(GNU m4 1.0を含む)一部のバージョンのm4の 内部制限を越えてしまう場合があります。 Autoconfと一緒には、GNU m4 1.1以降を使う必要があります。 バージョン1.3あるいはそれ以降を使った場合、1.1や1.2を使う場合より 大幅に高速になります。

バージョン1からのアップグレードのためにはSee section 13. Upgrading From Version 1を 参照してください。 Autoconfの開発経緯についてはSee section 14. History of Autoconfを参照してください。 Autoconfに関する質問集はSee section 12. Questions About Autoconfを参照してください。

Autoconfに関する御意見やバグレポートは bug-gnu-utils@prep.ai.mit.eduまでmailでお寄せください。 Autoconfのバージョン番号を書くのを忘れずに。 バージョン番号は`autoconf --version'で調べられます。

訳註: この和訳版は伊藤いとぢゅん純一郎 (itojun@itojun.org)に よるものです。 訳し間違いがあっても、犬も食いません。 疑問点があったら、「必ず原文を参照する」ようにしてください。 再配布などについては原文に従います。

訳註: この和訳版のAutoconf version 2.12 -> 2.13 へのマージ作業を新井康司 jca02266@nifty.ne.jpが行いました。一部、翻訳も行いました。訳が おかしな所は新井の担当部分です:-)


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

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