In Part II, we take a problem-oriented view of make . It is often not obvious how to apply make to real-world problems such as multidirectory builds, new programming languages, portability and performance issues, or debugging. Each of these problems is discussed, along with a chapter covering several complex examples.
Chapter 6, Managing Large Projects
Chapter 7, Portable Makefiles
Chapter 8, C and C++
Chapter 9, Java
Chapter 10, Improving the Performance of make
Chapter 11, Example Makefiles
Chapter 12, Debugging Makefiles