次: Config Names, 前: Installing GDB, 上: Installing GDB
いくつかのホスト・マシンおよびターゲット・マシン用のGDBを実行したい場合、
ホストとターゲットの個々の組み合わせ用にコンパイルされた異なるgdbが必要になります。
configureには、
個々の構成をソース・ディレクトリにではなく個別のサブディレクトリに生成する機能があり、
このようなことが簡単にできるように設計されています。
ユーザの使っているmakeプログラムに`VPATH'機能があれば
(gnu makeにはあります)、
これら個々のディレクトリにおいてmakeを実行することで、
そこで指定されているgdbプログラムをビルドすることができます。
個別のディレクトリにおいてgdbをビルドするには、
ソースの置かれている場所を指定するために、
`--srcdir'オプションを使ってconfigureを実行します
(同時に、
ユーザの作業ディレクトリからconfigureを見つけるためのパスも指定する必要があります。
もし、
configureへのパスが`--srcdir'への引数として指定するものと同じであれば、
`--srcdir'オプションは指定しなくてもかまいません。
指定されなければ、
同じであると仮定されます)。
例えば、 バージョン4.18でSun 4用のGDBを別のディレクトリにおいて構築するには、 以下のようにします。
cd gdb-4.18
mkdir ../gdb-sun4
cd ../gdb-sun4
../gdb-4.18/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-4.18
(あるいは、
`--srcdir=dirname/gdb-4.18'により構成された別のディレクトリ)
などのソース・ディレクトリにおいてmakeを実行すると、
必要とされるすべてのライブラリがビルドされ、
その後にGDBがビルドされることになります。
複数のホストまたはターゲットの構成が、
異なる複数のディレクトリに存在する場合、
(例えば、
それらが個々のホスト上にNFSマウントされている場合)
並行してmakeを実行することができます。
複数の構成が互いに干渉し合うということはありません。