基本的なインストール方法
========================

  以下に記したのは、一般的なインストールの方法です。

  `configure' シェルスクリプトは、コンパイル中に使用される、システム依
存のチェック項目の値を正しく推定しようと努めます。`configure'は、判定
した値を利用してパッケージ中の各ディレクトリの `Makefile'を生成します。 
加えて、システムに依存する定義内容を記した `.h' ファイルを一つもしくは
いくつか生成することもあります。最後に、`configure' は `config.status' 
というシェルスクリプト `config.cache'、`config.log' というファイルを生
成します。`config.status' は、現在のコンフィグレーションを後で再度生成
するときに用います。 `config.cache'は、再度コンフィグレーションを行う
ときにスピードアップを図るために、テストの結果を保存してあります。 
`config.log' には、(主に `configure' のデバッグに役立つような) コンピュー
タの出力が記録されています。

  あなたがパッケージをコンパイルするにあたって、特別なことをしなければ
ならなかったときは、`configure' がどのような判定をしていたのかを調べて
みて、`README' に記されたアドレスに宛てて、相違点や指摘をメールで送っ
て下さい。 そうすれば、次回のリリースに向けて検討されると思います。も
し、`config.cache' に見られたくない結果が記録されている場合は、その部
分を削除したり編集したりしても構いません。

  `configure.in' というファイルは、`autoconf' というプログラムが
`configure' を生成するときに参照します。 あなたにとって `configure.in'
というファイルが必要になるのは、 `configure.in' の内容を変更したい場合
か、`autoconf' のもっと新しいバージョンで `configure' を生成したい場合
の、いずれかだけです。

パッケージの最も単純なコンパイル方法は次の通りです。

  1. パッケージのソースコードが置かれているディレクトリに移動 (`cd') 
     し、 あなたのシステム向けのコンフィグレーションを行うために
     `./configure' を実行します。 あなたが古いバージョンの System V で
     `csh' を使用している場合は、`csh' 自身がスクリプトを実行してしま
     わないように、 `sh ./configure' とする必要があるかも知れません。

     `configure' の実行には少々時間がかかります。

     実行している間は、どのような項目をチェックしているのかを記したメッ
     セージが出力されます。

  2. `make' を実行してパッケージをコンパイルします。

  3. 任意で、パッケージに付属しているセルフテストを実行する場合は、
     `make check' を実行します。

  4. `make install' を実行して、プログラムおよびデータファイル、ドキュ
     メントをインストールします。

  5. `make clean' を実行すると、生成されたプログラムのバイナリファイル
     やオブジェクトファイルを、ソースコードの置かれたディレクトリから
     消すことができます。 一緒に `configure' が生成したファイルも消す
     には (こうすることで、別の種類のコンピュータでパッケージをコンパ
     イルできます)、 `make distclean' を実行します。`make maintainer-
     clean' というターゲットも用意されていますが、これは主にそのパッケー
     ジの開発者のためのものです。`make maintainer-clean' を実行してし
     まうと、パッケージに元々含まれていたファイルを再生成するために、
     他のいろいろなプログラムを入手しなくてはいけなくなるかも知れませ
     ん。

コンパイラとコンパイルオプション
================================

  システムによっては、`configure' スクリプトが理解していない、コンパイ
ルやリンクのための特別なオプションを与える必要があります。環境変数を通
して、`configure' に対して初期値を与えることができます。Bourne シェル
と互換性のあるシェルを使用している場合は、次のようにします。

     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure

`env' というコマンドがシステムにあるならば、次のようにすることもできま
す。

     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

複数のアーキテクチャでのインストール
====================================

  オブジェクトファイルをアーキテクチャ毎に別々のディレクトリに置くよう
にすることにより、種類の異なる複数のコンピュータが、パッケージを同時に
コンパイルできます。 これを行うには、GNU `make' のように、`VPATH' 変数
に対応した `make' を使用する必要があります。オブジェクトファイルや実行
形式のファイルを置いておきたいディレクトリに移動 (`cd') して、そこで
`configure' スクリプトを実行します。 `configure' は、自身の存在するディ
レクトリおよび `..' にソースコードがあるかどうかを自動的に調べます。

  `VPATH' 変数に対応していない `make' を使用している場合は、ソースコー
ドディレクトリの下で、一度に一つのアーキテクチャずつコンパイルしていく
しかありません。一つのアーキテクチャのコンパイルが終わったら、別のアー
キテクチャでコンパイルするために再コンフィグレーションを行う前に `make
distclean' を実行してください。

インストール名
==============

  デフォルトでは、`make install' を実行すると、パッケージ中のファイル
が `/usr/local/bin'、`/usr/local/man' などにインストールされます。
`configure' に対して `--prefix=パス' オプションを指定することで、
`/usr/local' 以外のインストール先を指定するとができま ます。

  アーキテクチャに依存したファイルとそうでないファイルを、それぞれ異なっ
たインストール先にインストールすることも可能です。 `configure' に対し
て `--exec-prefix=パス' を指定すると、プログラムやライブラリなどのイン
ストール先が「パス」に変わります。ドキュメントや、データファイルなどは、
通常のインストール先にインストールされます。

  加えて、あなたが通常とは異なったディレクトリレイアウトを採用している
場合は、`--bindir=パス' といったオプションを指定することで、特定の種類
のファイルのインストール先だけを変えることができます。 `configure
--help' を実行すると、どのようなディレクトリを変更できるのか、どのよう
な種類のファイルがどのディレクトリにインストールされるのかが分かります。

  パッケージがサポートしているならば、`configure' に `--program-prefix=
接頭辞' や `--program-suffix=接尾辞' というオプションを与えることで、
インストール時にプログラム名に接頭辞や接尾辞を付加することができます。

取捨選択の可能な機能
====================

  パッケージによっては、`configure' が `--enable-機能' オプションを認
識することがあります。ここで「機能」は、パッケージにおいて取捨選択の可
能な機能を表します。また、`--with-パッケージ' オプションを認識すること
もあります。ここで「パッケージ」は、`gnu-as' や (X ウィンドウシステム
のための) `x' といったものです。`README' ファイルでは、どのような 
`--enable-'、`--with-' オプションをパッケージが認識するのか、記してお
くべきです。

  一般に、X ウィンドウシステムを使用しているパッケージでは、
`configure' は X の include ファイルとライブラリファイルを自動的に見つ
け出すことができますが、見つけられない場合は、`configure' のオプション
`--x-includes=ディレクトリ' と `--x-libraries=ディレクトリ' を用いるこ
とでディレクトリの位置 を明示的に指定することができます。

システムの種類の指定
====================

  設定項目によっては、`configure' が自動的に識別できなくても、パッケー
ジが動作するホストの種類を基に決定しなければならないときもあります。通
常、`configure' はそのホストの種類を識別することができますが、もしも
`configure' がホストの種類を識別できないという旨のメッセージを出力して
きたときは、`--host=種類' オプションを与えて下さい。「種類」は `sun4'
のようなシステムの種類を表した短い名前か、あるいは次のように 3 つの項
からなる正式名称のいずれかです。

     CPU-社名-システム

それぞれの項にどのような値が指定可能なのかについては、`config.sub' ファ
イルをご覧下さい。 パッケージが `config.sub' を含んでいないのであれば、
そのパッケージはホストの種類を識別する必要がないことを意味しています。

あなたがクロスコンパイルのためのコンパイラツールをインストールしようと
している場合は、`--target=種類' オプションを使用することで、どのホスト
向けのコードを生成させるのかを指定できます。そして、`--build=種類' オ
プションを使用することで、パッケージをコンパイルしようとしているシステ
ムの種類を指定することができます。

デフォルト値の共有
==================

  複数の `configure' スクリプトに対して共通のデフォルト値を設定したい
ときは、サイト毎に `config.site' というシェルスクリプトを作成し、そこ
に `CC' や `cache_file'、`prefix' といった変数のデフォルト値を記述して
下さい。 `configure' は `PREFIX/share/config.site' があれば、 それを調
べ、次に `PREFIX/etc/config.site' があればそれを調べます。あるいは、環
境変数 `CONFIG_SITE' を設定することで、サイト固有のスクリプトの位置を
指定することもできます。 ただし、すべての `configure' スクリプトがサイ
ト固有のスクリプトを見に行くわけではありませんので、ご注意下さい。

`configure' の動作の制御
========================

  `configure' は次に記したオプションを認識します。

`--cache-file=ファイル'
     テストの結果の読み込みや書き出しに使用するファイルは、通常
     `./config.cache' ですが、代わりに「ファイル」を用います。
     `configure' をデバッグするときは、ファイル に `/dev/null' を指定
     することで、キャッシュを抑制することができます。

`--help'
     `configure' のオプションの一覧を表示して、終了します。

`--quiet'
`--silent'
`-q'
     どのチェック項目を行っているのかを示すメッセージを出力しません。
     通常のメッセージ出力をすべて抑制するには、`/dev/null' へリダイレ
     クトして下さい (ただし、エラーメッセージについては出力されてしま
     いますが)。

`--srcdir=ディレクトリ'
     パッケージのソースコードを探し出す際に、「ディレクトリ」を探しま
     す。通常、`configure' は自動的にディレクトリを決定します。

`--version'
     `configure' スクリプトがどのバージョンの Autoconf によって生成さ
     れたのかを表示し、終了します。

役に立つ場面は限られますが、`configure' には他にもいくつかのオプション
が用意されています。
