If you want to run GDB versions for several host or target machines,
you need a different
gdb compiled for each combination of
host and target.
configure is designed to make this easy by
allowing you to generate each configuration in a separate subdirectory,
rather than in the source directory. If your
handles the `VPATH' feature (GNU
make does), running
make in each of these directories builds the
program specified there.
gdb in a separate directory, run
with the `--srcdir' option to specify where to find the source.
(You also need to specify a path to find
itself from your working directory. If the path to
would be the same as the argument to `--srcdir', you can leave out
the `--srcdir' option; it is assumed.)
For example, with version 5.1.1, you can build GDB in a separate directory for a Sun 4 like this:
cd gdb-5.1.1 mkdir ../gdb-sun4 cd ../gdb-sun4 ../gdb-5.1.1/configure sun4 make
configure builds a configuration using a remote source
directory, it creates a tree for the binaries with the same structure
(and using the same names) as the tree under the source directory. In
the example, you'd find the Sun 4 library `libiberty.a' in the
directory `gdb-sun4/libiberty', and GDB itself in
One popular reason to build several GDB configurations in separate
directories is to configure GDB for cross-compiling (where
GDB runs on one machine--the host---while debugging
programs that run on another machine--the target).
You specify a cross-debugging target by
giving the `--target=target' option to
When you run
make to build a program or library, you must run
it in a configured directory--whatever directory you were in when you
configure (or one of its subdirectories).
configure generates in each source
directory also runs recursively. If you type
make in a source
directory such as `gdb-5.1.1' (or in a separate configured
directory configured with `--srcdir=dirname/gdb-5.1.1'), you
will build all the required libraries, and then build GDB.
When you have multiple hosts or targets configured in separate
directories, you can run
make on them in parallel (for example,
if they are NFS-mounted on each of the hosts); they will not interfere
with each other.
Go to the first, previous, next, last section, table of contents.