Next: , Previous: , Up: Installing ROCGDB   [Contents][Index]


C.3 Compiling ROCGDB in Another Directory

If you want to run ROCGDB 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 make program handles the ‘VPATH’ feature (GNU make does), running make in each of these directories builds the gdb program specified there.

To build gdb in a separate directory, run configure with the ‘--srcdir’ option to specify where to find the source. (You also need to specify a path to find configure itself from your working directory. If the path to configure would be the same as the argument to ‘--srcdir’, you can leave out the ‘--srcdir’ option; it is assumed.)

For example, with version 13.0.50.20220325-git, you can build ROCGDB in a separate directory for a Sun 4 like this:

cd gdb-13.0.50.20220325-git
mkdir ../gdb-sun4
cd ../gdb-sun4
../gdb-13.0.50.20220325-git/configure
make

When 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 ROCGDB itself in gdb-sun4/gdb.

Make sure that your path to the configure script has just one instance of gdb in it. If your path to configure looks like ../gdb-13.0.50.20220325-git/gdb/configure, you are configuring only one subdirectory of ROCGDB, not the whole package. This leads to build errors about missing include files such as bfd/bfd.h.

One popular reason to build several ROCGDB configurations in separate directories is to configure ROCGDB for cross-compiling (where ROCGDB 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 configure.

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 called configure (or one of its subdirectories).

The Makefile that configure generates in each source directory also runs recursively. If you type make in a source directory such as gdb-13.0.50.20220325-git (or in a separate configured directory configured with ‘--srcdir=dirname/gdb-13.0.50.20220325-git’), 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.


Next: Specifying Names for Hosts and Targets, Previous: Invoking the ROCGDB configure Script, Up: Installing ROCGDB   [Contents][Index]