@c This file is included by autoconf_ja.texi and is used to produce
@c the INSTALL file.

@node Basic Installation
@section 基本インストール

これらは一般的なインストール説明書です。

@code{configure}シェルスクリプトは、コンパイル時に利用する、様々なシステ
ム依存変数の、正しい値を推測します。パッケージの、それぞれのディレクトリ
の@file{Makefile}を作るために、これらの値は使われます。システム依存の定
義を含む、一つ以上の@file{.h}ファイルも作ります。最終的に、将来、現在の
コンフィグレーションを再生成する、シェルスクリプト @file{config.status}
と、再コンフィグレーションのスピードをあげるため、テストの結果を保存する
ファイル@file{config.cache}と、コンパイラ出力を含むファイル
@file{config.log}(主に@code{configure}のデバッグで役立ちます)を作ります。
 
パッケージをコンパイルするため、通常でないことをする必要がある場合、そう
するために@code{configure}にチェックさせた方法を理解し、次のリリースに反
映できるように、@file{README}にあるアドレスに、diffの結果や説明をメール
してください。いくつかの点で、保存する必要のない@file{config.cache}の結
果は、削除したり編集したりして構いません。

ファイル@file{configure.in}は、@code{autoconf}と呼ばれるプログラムで、
@file{configure}を作るために使われます。変更したり、新しいバージョンの 
@code{autoconf}で再生成したい場合だけ、@file{configure.in}が必要です。

@noindent
このパッケージをコンパイルする最も単純な方法は、以下の通りです。

@enumerate
@item
パッケージのソースを含むディレクトリに@code{cd}して、システムに対するパッ
ケージのコンフィグレーションのため、@samp{./configure}と入力してください。
System Vの古いバージョンの@code{csh}を使っている場合、 @code{csh}で
@code{configure}を実行させないため、@samp{sh ./configure}と入力する必要
がある可能性があります。

@code{configure}の実行には、しばらくかかります。実行中、調べている特徴を
伝えるメッセージを出力します。

@item
パッケージをコンパイルするために@samp{make}と入力してください。

@item
オプションとして、パッケージ付属の自己テストを実行するため、@samp{make
check}と入力してください。

@item
プログラムと、あらゆるデータファイルと、ドキュメントをインストールするた
め、@samp{make install}と入力してください。

@item
ソースコードディレクトリから、プログラムバイナリやオブジェクトファイルを
削除することは、@samp{make clean}でできます。@code{configure}が作ったファ
イルの削除(他の種類のコンピュータに対するパッケージの、コンパイルできる
ようにするため)は、@samp{make distclean}の入力で可能です。 @samp{make
maintainer-clean}ターゲットもありますが、主にパッケージ開発者用です。そ
れを使う場合、配布物の付属ファイルを再生成するため、他のプログラムを使う
必要が発生するかも知れません。
@end enumerate

@node Compilers and Options
@section コンパイラとオプション

@code{configure}スクリプトが知らない、普通使わない、コンパイルやリンクの
オプションが必要なシステムもあります。環境変数に初期値をセットすることで、
@code{configure}にそれを与えることができます。Bourneシェル互換のシェルを
使って、以下のようにコマンドラインで行うことができます。
@example
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
@end example

@noindent
@code{env}プログラムがあるシステムでは、以下のようにしてもできます。
@example
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
@end example

@node Multiple Architectures
@section 複数のアーキテクチャに対するコンパイル


それぞれのアーキテクチャのためのオブジェクトファイルを、それ自身のディレ
クトリに置くことで、同時に1種類以上のコンピュータで、パッケージをコンパ
イルすることができます。こうするために、GNU @code{make}の様に、 
@code{VPATH}変数をサポートする@code{make}のバージョンを使う必要がありま
す。オブジェクトファイルと実行可能なファイルを置くディレクトリに 
@code{cd}して、@code{configure}スクリプトを実行します。 @code{configure}
は、@code{configure}があるディレクトリと@file{..}で、ソースコードを自動
的に調べます。

@code{VPATH}をサポートしない@code{make}を使う必要がある場合、ソースコー
ドディレクトリで、一度、一つのアーキテクチャのために、パッケージをコンパ
イルする必要があります。一つのアーキテクチャのパッケージをインストールし
た後、他のアーキテクチャに対して再コンフィグレーションするため、
@samp{make distclean}を使ってください。

@node Installation Names
@section インストール名

デフォルトで、@samp{make install}はパッケージファイルを、
@file{/usr/local/bin}や@file{/usr/local/man}等にインストールします。イン
ストールプレフィクスを、@samp{--prefix=@var{path}}オプションで 
@code{configure}に与えることで、特定することができます。

アーキテクチャ特有のファイルと、アーキテクチャ非依存のファイルを、別々の
インストールプレフィクスに分けて特定することができます。 
@code{configure}に@samp{--exec-prefix=@var{path}}オプションを与えた場合、
パッケージは、プログラムとライブラリをインストールするプレフィクスとして、
@var{path}を使います。ドキュメントと他のデータファイルは通常のプレフィク
スを使います。

さらに、普通でないディレクトリ配置を使う場合、特定の種類のファイルに対し、
異なる値で特定するよう、@samp{--bindir=@var{path}}のようなオプションを与
えることで可能です。セットできるディレクトリリストと、そこに置きたいファ
イルの種類は、@samp{configure --help}で見ることができます。

パッケージがサポートする場合、@code{configure}に
@samp{--program-prefix=@var{PREFIX}}や
@samp{--program-suffix=@var{SUFFIX}}オプションを与えることで、プログラム
を、追加のプレフィクスやサフィックスで、インストールすることができます。

@node Optional Features
@section オプションの特徴

@code{configure}への@samp{--enable-@var{feature}}オプションに注意を払う
パッケージもあり、@var{feature}は、パッケージのオプションパートを示しま
す。@samp{--with-@var{package}}オプションに注意を払うパッケージもあり、
@var{package}は、@samp{gnu-as}や@samp{x}(X Window System用)の様なもので
す。@file{README}は、パッケージが理解する、 @samp{--enable-}と
@samp{--with-}オプションに付いて述べています。

X Window Systemを使うパッケージのため、@code{configure}は普通、Xインクルー
ドやリンクファイルを自動的に見つけますが、できなかった場合は、
@code{configure}オプションの、@samp{--x-includes=@var{dir}}と
@samp{--x-libraries=@var{dir}}を、場所を特定するために使うことができます。

@node System Type
@section システムタイプの指定

@code{configure}が自動的に判定できない特徴もありますが、パッケージを実行
する、ホストのタイプを定義する必要があるものもあります。普通
@code{configure}はそれを判定できますが、ホストタイプが分からない旨メッセー
ジを出力した場合、@samp{--host=@var{type}}オプションで与えてください。
@var{type}は、@samp{sun4}の様なシステムタイプの短い名前や、3つのフィール
ドを持つ標準的な名前です。
@example
@var{cpu}-@var{company}-@var{system}
@end example
@noindent
それぞれのフィールドでの可能な値は、ファイル@file{config.sub}を見てくだ
さい。@file{config.sub}がパッケージに含まれていない場合は、パッケージに
ホストタイプを知らせる必要がありません。

クロスコンパイルのためのコンパイラツールを作っている場合、同様に、コード
を生成するシステムのタイプを選択するための@samp{--target=@var{type}}オプ
ションと、パッケージをコンパイルするシステムタイプを選択するための 
@samp{--build=@var{type}}オプションを使うこともできます。

@node Sharing Defaults
@section デフォルトの共有

@code{configure}を共有するため、デフォルト値をセットしたい場合、 
@file{config.site}と呼ばれる、サイトシェルスクリプトを作ることができ、そ
れは、@code{CC}、@code{cache_file}と、@code{prefix}の様な変数を与えます。
@code{configure}は、@file{@var{prefix}/share/config.site}の存在を調べ、
そして、@file{@var{prefix}/etc/config.site}の存在を調べます。
@code{CONFIG_SITE}環境変数を、サイトスクリプトのある場所にセットすること
もできます。注意として、全ての@code{configure}スクリプトが、サイトスクリ
プトを探すわけではないことがあげられます。

@node Operation Controls
@section オペレーションの制御

@code{configure}は、処理方法をコントロールする以下のオプションを理解し
ます。

@table @code
@item --cache-file=@var{file}
@file{./config.cache}の代わりに、@var{file}にテストの結果を保存します。
デバッグのために、キャッシュできないようにするには、@var{file}を 
@file{/dev/null}にセットしてください。

@item --help
@code{configure}オプションの概要を出力して終了します。

@item --quiet
@itemx --silent
@itemx -q
調査したり作ったりしているメッセージを出力しません。通常の出力も全て省く
ためには、(エラーメッセージは表示されるので)@file{/dev/null}に、ファイル
をリダイレクトしてください。

@item --srcdir=@var{dir}
ディレクトリ@var{dir}で、パッケージのソースコードを探します。普通は、 
@code{configure}は、ディレクトリを自動的に決定するはずです。

@item --version
@code{configure}の生成に使った、Autoconfのバージョンを出力し終了します。
@end table

@noindent
@code{configure}は、同様に、広範囲では役に立たないかも知れないが、他のオ
プションも受け入れます。
