### 12.4 Cygnus Software

Cygnus is a commercial supplier and supporter of GNU software. It has also written several of its own packages, released under the terms of the GNU General Public License; and it has taken over the maintenance of other packages. Among the packages released by Cygnus are ‘`gdb`’, ‘`gnats`’, and ‘`dejagnu`’.

Cygnus packages have the peculiarity that each one unpacks into a directory tree with a generic top-level Makefile, which is set up to compile all of Cygnus’ packages, any number of which may reside under the top-level directory. In other words, even if you’re only building ‘`gnats`’, the top-level Makefile will look for, and try to build, `gdb` and `dejagnu` subdirectories, among many others.

The result is that if you try ‘`make -n install prefix=/usr/local/stow/package`’ at the top level of a Cygnus package, you’ll get a bewildering amount of output. It will then be very difficult to visually scan the output to see whether the install will proceed correctly. Unfortunately, it’s not always clear how to invoke an install from the subdirectory of interest.

In cases like this, the best approach is to run your ‘`make install prefix=…`’, but be ready to interrupt it if you detect that it is recompiling files. Usually it will work just fine; otherwise, install manually.