いくつかのホスト・マシンおよびターゲット・マシン用の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
を実行することができます。
複数の構成が互いに干渉し合うということはありません。