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

10. Running configure Scripts

以下では、configureスクリプトを使ったパッケージをどうやって 自動設定するかを述べます。以下のテキストは、パッケージに添付する `INSTALL'ファイルとしても使えます。配布可能なプレーンテキスト版の `INSTALL'はAutoconfパッケージに含まれています。

10.1 基本インストール  Instructions for typical cases.
10.2 コンパイラとオプション  Selecting compilers and optimization.
10.3 複数のアーキテクチャに対するコンパイル  Compiling for multiple architectures at once.
10.4 インストール名  Installing in different directories.
10.5 オプションの特徴  Selecting optional features.
10.6 システムタイプの指定  Specifying the system type.
10.7 デフォルトの共有  Setting site-wide defaults for configure.
10.8 オペレーションの制御  Changing how configure runs.


10.1 基本インストール

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

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

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

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

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

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

  2. パッケージをコンパイルするために`make'と入力してください。

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

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

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


10.2 コンパイラとオプション

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

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

envプログラムがあるシステムでは、以下のようにしてもできます。

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


10.3 複数のアーキテクチャに対するコンパイル

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

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


10.4 インストール名

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

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

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

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


10.5 オプションの特徴

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

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


10.6 システムタイプの指定

configureが自動的に判定できない特徴もありますが、パッケージを実行 する、ホストのタイプを定義する必要があるものもあります。普通 configureはそれを判定できますが、ホストタイプが分からない旨メッセー ジを出力した場合、`--host=type'オプションで与えてください。 typeは、`sun4'の様なシステムタイプの短い名前や、3つのフィール ドを持つ標準的な名前です。

 
cpu-company-system
それぞれのフィールドでの可能な値は、ファイル`config.sub'を見てくだ さい。`config.sub'がパッケージに含まれていない場合は、パッケージに ホストタイプを知らせる必要がありません。

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


10.7 デフォルトの共有

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


10.8 オペレーションの制御

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

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

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

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

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

--version
configureの生成に使った、Autoconfのバージョンを出力し終了します。

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


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

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