make is one of UNIX's greatest contributions to software development, and this book is the clearest description of make ever written. Even the smallest software project typically involves a number of files that depend upon each other in various ways. If you modify one or more source files, you must relink the program after recompiling some, but not necessarily all, of the sources.
make greatly simplifies this process. By recording the relationships between sets of files, make can automatically perform all the necessary updating.
For large projects with teams of programmers and multiple releases, make becomes even more critical. But in order to avoid spending a major portion of your maintenance budget on maintaining the Makefiles, you need a system for handling directories, dependencies, and macro definitions. This book describes all the basic features of make and provides guidelines on meeting the needs of large, modern projects.
Some of the issues addressed in the second edition include:
- Projects covering several directories.
- Maintaining consistency when building variants of a program.
- Automatic generation of header file dependencies.
- Forced rebuilds of existing files.
- A description of free products that contain major enhancements to make.
- Listings of the features that vary between different versions of make and simple ways to test them.
- More detail and examples on common errors, use of the shell in make, formal rules of syntax in make, and support for various utilities.