[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


GDBのインストール

GDBには、 インストールのための準備作業を自動化するconfigureスクリプトが付属しています。 configureを実行した後にmakeを実行することで、 gdbをビルドすることができます。 (24)

GDBディストリビューションには、 GDBをビルドするのに必要なすべてのソース・コードが、 単一のディレクトリの下に収められています。 このディレクトリの名前は通常、 `gdb'の後ろにバージョン番号を付加したものです。

例えば、 バージョン5.0のGDBディストリビューションは、 `gdb-5.0'というディレクトリに収められています。 このディレクトリには以下のものが含まれます。

gdb-5.0/configure (およびサポート・ファイル)
GDB、 および、 GDBが必要とするすべてのライブラリの構成を行うためのスクリプト
gdb-5.0/gdb
GDB自身に固有のソース
gdb-5.0/bfd
Binary File Descriptorライブラリのソース
gdb-5.0/include
GNUインクルード・ファイル
gdb-5.0/libiberty
`-liberty'フリー・ソフトウェア・ライブラリのソース
gdb-5.0/opcodes
opcodeテーブルおよび逆アセンブラのライブラリのソース
gdb-5.0/readline
GNUコマンドライン・インターフェイスのソース
gdb-5.0/glob
GNUファイル名パターン・マッチング・サブルーチンのソース
gdb-5.0/mmalloc
メモリにマップされるGNU mallocパッケージのソース

GDBの構成とビルドを行う最も簡単な方法は、 `gdb-version-number'ソース・ディレクトリからconfigureを実行することです。 ここでの例では、 このディレクトリは`gdb-5.0'です。

もしまだ`gdb-version-number'ソース・ディレクトリにいないのであれば、 まずそこに移動してください。 続いてconfigureを実行します。 GDBが実行されるプラットフォームの識別子を引数として渡します。

例えば、 以下のようにします。

cd gdb-5.0
./configure host
make

hostは、 GDBが実行されるプラットフォームを識別する識別子です。 例えば`sun4'`decstation'などです (多くの場合hostは省略することができます。 この場合configureは、 ユーザのシステムを調べることによって正しい値を推定しようとします)。

`configure host'を実行した後にmakeを実行することで、 `bfd'`readline'`mmalloc'`libiberty'の各ライブラリがビルドされ、 最後にgdb自体がビルドされます。 構成されたソース・ファイルやバイナリは、 対応するソース・ディレクトリに残されます。

configureはBourneシェル (/bin/sh) のスクリプトです。 ユーザが別のシェルを実行していて、 システムがこのことを自動的に認識してくれない場合は、 明示的にshにスクリプトを実行させる必要があるかもしれません。

sh configure host

バージョン5.0のソース・ディレクトリである`gdb-5.0'のように、 配下に複数のライブラリやプログラムのソース・ディレクトリを含むディレクトリからconfigureを実行すると、 configureは配下にあるそれぞれのディレクトリのための構成ファイルを作成します (`--norecursion'オプションによって、 そうしないよう指定した場合は別です)。

GDBディストリビューションの中の特定のサブディレクトリを構成したいだけの場合には、 そのサブディレクトリからconfigureスクリプトを実行することができます。 ただし、 configureスクリプトへのパスを必ず指定してください。

例えば、 バージョン5.0では、 bfdサブディレクトリだけを構成するには以下のようにします。

cd gdb-5.0/bfd
../configure host

gdbはどこにでもインストールできます。 あらかじめ固定されたパスは1つもありません。 ただし、 ユーザのパスにある (`SHELL'環境変数により指定される) シェルが誰にでも読み取り可能であることを確かめる必要があります。 GDBはシェルを使ってユーザ・プログラムを起動するということを憶えておいてください。 子プロセスが読み取り不可のプログラムである場合、 システムによっては、 GDBがそれをデバッグするのを拒否します。

別ディレクトリでのGDBのコンパイル

いくつかのホスト・マシンおよびターゲット・マシン用のGDBを実行したい場合、 ホストとターゲットの個々の組み合わせ用にコンパイルされた異なるgdbが必要になります。 configureには、 個々の構成をソース・ディレクトリにではなく個別のサブディレクトリに生成する機能があり、 このようなことが簡単にできるように設計されています。 ユーザの使っているmakeプログラムに`VPATH'機能があれば (GNU makeにはあります)、 これら個々のディレクトリにおいてmakeを実行することで、 そこで指定されているgdbプログラムをビルドすることができます。

個別のディレクトリにおいてgdbをビルドするには、 ソースの置かれている場所を指定するために、 `--srcdir'オプションを使ってconfigureを実行します (同時に、 ユーザの作業ディレクトリからconfigureを見つけるためのパスも指定する必要があります。 もし、 configureへのパスが`--srcdir'への引数として指定するものと同じであれば、 `--srcdir'オプションは指定しなくてもかまいません。 指定されなければ、 同じであると仮定されます)。

例えば、 バージョン5.0でSun 4用のGDBを別のディレクトリにおいてビルドするには、 以下のようにします。

cd gdb-5.0
mkdir ../gdb-sun4
cd ../gdb-sun4
../gdb-5.0/configure sun4
make

configureが、 別の場所にあるソース・ディレクトリを使って、 ある構成を作成する際には、 ソース・ディレクトリ配下のディレクトリ・ツリーと同じ構造のディレクトリ・ツリーを (同じ名前で) バイナリ用に作成します。 この例では、 Sun 4用のライブラリ`libiberty.a'`gdb-sun4/libiberty'ディレクトリに、 GDB自身は`gdb-sun4/gdb'ディレクトリにそれぞれ作成されます。

いくつかのGDBの構成を個別のディレクトリにおいてビルドする理由としてよくあるのが、 クロス・コンパイル (GDBはホストと呼ばれるあるマシン上で動作し、 ターゲットと呼ばれる別のマシンで実行されているプログラムをデバッグする) 環境用にGDBを構成する場合です。 クロス・デバッグのターゲットは、 configureに対する`--target=target'オプションを使って指定します。

プログラムやライブラリをビルドするためにmakeを実行するときには、 構成されたディレクトリにいなければなりません。 これは、 configureを実行したときにいたディレクトリ (または、 そのサブディレクトリの1つ) です。

configureが個別のソース・ディレクトリに生成したMakefileは再帰的に呼び出されます。 `gdb-5.0' (あるいは、 `--srcdir=dirname/gdb-5.0'により構成された別のディレクトリ) などのソース・ディレクトリにおいてmakeを実行すると、 必要とされるすべてのライブラリがビルドされ、 その後にGDBがビルドされることになります。

複数のホストまたはターゲットの構成が、 異なる複数のディレクトリに存在する場合、 (例えば、 それらが個々のホスト上にNFSマウントされている場合) 並行してmakeを実行することができます。 複数の構成が互いに干渉し合うということはありません。

ホストとターゲットの名前の指定

configureスクリプトにおけるホストおよびターゲットの指定方法は、 3つの名称部分を持ちますが、 あらかじめ定義された短い別名もいくつかサポートされています。 完全名は、 以下のようなパターンの3つの情報部分を持ちます。

architecture-vendor-os

例えば、 ホストを指定する引数hostとして、 あるいは、 --target=targetオプションのtargetの部分に、 sun4という別名を使うことができます。 これと同等の完全名は`sparc-sun-sunos4'です。

GDBに付属しているconfigureスクリプトには、 サポートされているすべてのホスト名、 ターゲット名、 および、 別名を問い合わせするための機能はありません。 configureは、 Bourneシェル・スクリプトのconfig.subを呼び出すことによって、 省略名を完全名に対応付けします。 もしそうしたいのであれば、 このスクリプトを読むことによって、 あるいは、 このスクリプトを使うことによって、 省略名の意味が推測と合っているかどうかをテストすることもできます。 以下に例を示します。

% sh config.sub i386-linux
i386-pc-linux-gnu
% sh config.sub alpha-linux
alpha-unknown-linux-gnu
% sh config.sub hp9k700
hppa1.1-hp-hpux
% sh config.sub sun4
sparc-sun-sunos4.1.1
% sh config.sub sun3
m68k-sun-sunos4.1.1
% sh config.sub i986v
Invalid configuration `i986v': machine `i986v' not recognized

config.subも、 GDBディストリビューションの一部としてソース・ディレクトリ (バージョン5.0では、`gdb-5.0') に入っています。

configureオプション

以下に、 GDBをビルドする上でほとんどの場合に役に立つ configureのオプションと引数の要約を示します。 configureには、 ここには挙げられていないオプションもいくつかあります。 configureに関する完全な説明については、 Infoファイル`configure.info'のノード`What Configure Does'を参照してください。

configure [--help]
          [--prefix=dir]
          [--exec-prefix=dir]
          [--srcdir=dirname]
          [--norecursion] [--rm]
          [--target=target]
          host

そうしたいのであれば、 `--'ではなく単一の`-'でオプションを始めることもできますが、 `--'を使うとオプション名を省略することができます。

--help
configureの実行方法の簡単な要約を表示します。
--prefix=dir
プログラムおよびファイルをディレクトリ`dir'にインストールするよう ソースを構成します。
--exec-prefix=dir
プログラムをディレクトリ`dir'にインストールするよう ソースを構成します。
--srcdir=dirname
注意:このオプションを使うには、 GNU make、 あるいは、 VPATH機能を持つ他のmakeを使用する必要があります。
GDBソース・ディレクトリとは別のディレクトリに構成を作成する場合に、 このオプションを使用します。 特に、 いくつかの構成を個別のディレクトリにおいて同時に作成(かつ維持)する場合に、 このオプションを使うことができます。 configureは、 構成に固有のファイルをカレント・ディレクトリに書き込みますが、 dirnameディレクトリにあるソースを使うように、 それらのファイルの内容を調整します。 configureは、 dirnameディレクトリ配下のソース・ディレクトリ・ツリーと同じ構造を持つディレクトリ・ツリーを、 作業ディレクトリの下に作成します。
--norecursion
configureが実行されたディレクトリ・レベルだけを構成します。 サブディレクトリまで含めて構成することはしません。
--target=target
指定されたターゲットtargetで実行するプログラムをクロス・デバッグするために、 GDBを構成します。 このオプションを指定しないと、 GDBと同じマシン (ホスト) で実行されるプログラムをデバッグするよう、 GDBは構成されます。 利用可能なすべてのターゲットの一覧を生成する、 便利な方法はありません。
host ...
指定されたホストhost上で実行されるようGDBを構成します。 利用可能なすべてのホストの一覧を生成する、 便利な方法はありません。

ほかにも利用可能な多くのオプションがありますが、 これは通常、 特殊な目的にのみ必要とされるものです。


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]