Managing Projects with GNU Make

Robert Mecklenburg · 2004

Foreword Preface Part I. Basic Concepts 1. How to Write a Simple Makefile Targets and Prerequisites Dependency Checking Minimizing Rebuilds Invoking make Basic Makefile Syntax 2. Rules Explicit Rules Variables Finding Files with VPATH and vpath Pattern Rules The Implicit Rules Database Special Targets Automatic Dependency Generation Managing Libraries 3. Variables and Macros What Variables Are Used For Variable Types Macros When Variables Are Expanded Target- and Pattern-Specific Variables Where Variables Come From Conditional and include Processing Standard make Variables 4. Functions User-Defined Functions Built-in Functions Advanced User-Defined Functions 5. Commands Parsing Commands Which Shell to Use Empty Commands Command Environment Evaluating Commands Command-Line Limits Part II. Advanced and Specialized Topics 6. Managing Large Projects Recursive make Nonrecursive make Components of Large Systems Filesystem Layout Automating Builds and Testing 7. Portable Makefiles Portability Issues Cygwin Managing Programs and Files Working with Nonportable Tools Automake 8. C and C++ Separating Source and Binary Read-Only Source Dependency Generation Supporting Multiple Binary Trees Partial Source Trees Reference Builds, Libraries, and Installers 9. Java Alternatives to make A Generic Java Makefile Compiling Java Managing Jars Reference Trees and Third-Party Jars Enterprise JavaBeans 10. Improving the Performance of make Benchmarking Identifying and Handling Bottlenecks Parallel make Distributed make 11. Example Makefiles The Book Makefile The Linux Kernel Makefile 12. Debugging Makefiles Debugging Features of make Writing Code for Debugging Common Error Messages Part III. Appendixes A. Running make B. The Outer Limits C. GNU Free Documentation License-GNU Project-Free Software Foundation (FSF) Index

Read the paper · More papers on PaperTik