le width="100%"><tr><td> Foreword </td></tr></table><table width="100%"><tr><td> Preface </td></tr></table><table width="100%"><tr><td> Part I. Basic Concepts </td></tr></table><table width="100%"><tr><td> 1. How to Write a Simple Makefile </td></tr></table><table width="100%"><tr><td> Targets and Prerequisites </td></tr></table><table width="100%"><tr><td> Dependency Checking </td></tr></table><table width="100%"><tr><td> Minimizing Rebuilds </td></tr></table><table width="100%"><tr><td> Invoking make </td></tr></table><table width="100%"><tr><td> Basic Makefile Syntax </td></tr></table><table width="100%"><tr><td> 2. Rules </td></tr></table><table width="100%"><tr><td> Explicit Rules </td></tr></table><table width="100%"><tr><td> Variables </td></tr></table><table width="100%"><tr><td> Finding Files with VPATH and vpath </td></tr></table><table width="100%"><tr><td> Pattern Rules </td></tr></table><table width="100%"><tr><td> The Implicit Rules Database </td></tr></table><table width="100%"><tr><td> Special Targets </td></tr></table><table width="100%"><tr><td> Automatic Dependency Generation </td></tr></table><table width="100%"><tr><td> Managing Libraries </td></tr></table><table width="100%"><tr><td> 3. Variables and Macros </td></tr></table><table width="100%"><tr><td> What Variables Are Used For </td></tr></table><table width="100%"><tr><td> Variable Types </td></tr></table><table width="100%"><tr><td> Macros </td></tr></table><table width="100%"><tr><td> When Variables Are Expanded </td></tr></table><table width="100%"><tr><td> Target-and Pattern-Specific Variables </td></tr></table><table width="100%"><tr><td> Where Variables Come From </td></tr></table><table width="100%"><tr><td> Conditional and include Processing </td></tr></table><table width="100%"><tr><td> Standard make Variables </td></tr></table><table width="100%"><tr><td> 4. Functions </td></tr></table><table width="100%"><tr><td> User-Defined Functions </td></tr></table><table width="100%"><tr><td> Built-in Functions </td></tr></table><table width="100%"><tr><td> Advanced User-Defined Functions </td></tr></table><table width="100%"><tr><td> 5. Commands </td></tr></table><table width="100%"><tr><td> Parsing Commands </td></tr></table><table width="100%"><tr><td> Which Shell to Use </td></tr></table><table width="100%"><tr><td> Empty Commands </td></tr></table><table width="100%"><tr><td> Command Environment </td></tr></table><table width="100%"><tr><td> Evaluating Commands </td></tr></table><table width="100%"><tr><td> Command-Line Limits </td></tr></table><table width="100%"><tr><td> Part II. Advanced and Specialized Topics </td></tr></table><table width="100%"><tr><td> 6. Managing Large Projects </td></tr></table><table width="100%"><tr><td> Recursive make </td></tr></table><table width="100%"><tr><td> Nonrecursive make </td></tr></table><table width="100%"><tr><td> Components of Large Systems </td></tr></table><table width="100%"><tr><td> Filesystem Layout </td></tr></table><table width="100%"><tr><td> Automating Builds and Testing </td></tr></table><table width="100%"><tr><td> 7. Portable Makefiles </td></tr></table><table width="100%"><tr><td> Portability Issues </td></tr></table><table width="100%"><tr><td> Cygwin </td></tr></table><table width="100%"><tr><td> Managing Programs and Files </td></tr></table><table width="100%"><tr><td> Working with Nonportable Tools </td></tr></table><table width="100%"><tr><td> Automake </td></tr></table><table width="100%"><tr><td> 8. C and C++ </td></tr></table><table width="100%"><tr><td> Separating Source and Binary </td></tr></table><table width="100%"><tr><td> Read-Only Source </td></tr></table><table width="100%"><tr><td> Dependency Generation </td></tr></table><table width="100%"><tr><td> Supporting Multiple Binary Trees </td></tr></table><table width="100%"><tr><td> Partial Source Trees </td></tr></table><table width="100%"><tr><td> Reference Builds,Libraries,and Installers </td></tr></table><table width="100%"><tr><td> 9. Java </td></tr></table><table width="100%"><tr><td> Alternatives to make </td></tr></table><table width="100%"><tr><td> A Generic Java Makefile </td></tr></table><table width="100%"><tr><td> Compiling Java </td></tr></table><table width="100%"><tr><td> Managing Jars </td></tr></table><table width="100%"><tr><td> Reference Trees and Third-Party Jars </td></tr></table><table width="100%"><tr><td> Enterprise JavaBeans </td></tr></table><table width="100%"><tr><td> 10. Improving the Performance of make </td></tr></table><table width="100%"><tr><td> Benchmarking </td></tr></table><table width="100%"><tr><td> Identifying and Handling Bottlenecks </td></tr></table><table width="100%"><tr><td> Parallel make </td></tr></table><table width="100%"><tr><td> Distributed make </td></tr></table><table width="100%"><tr><td> 11. Example Makefiles </td></tr></table><table width="100%"><tr><td> The Book Makefile </td></tr></table><table width="100%"><tr><td> The Linux Kernel Makefile </td></tr></table><table width="100%"><tr><td> 12. Debugging Makefiles </td></tr></table><table width="100%"><tr><td> Debugging Features of make </td></tr></table><table width="100%"><tr><td> Writing Code for Debugging </td></tr></table><table width="100%"><tr><td> Common Error Messages </td></tr></table><table width="100%"><tr><td> Part III. Appendixes </td></tr></table><table width="100%"><tr><td> A. Running make </td></tr></table><table width="100%"><tr><td> B. The Outer Limits </td></tr></table><table width="100%"><tr><td> C. GNU Free Documentation License—GNU Project—Free Software </td></tr></table><table width="100%"><tr><td> Foundation (FSF) </td></tr></table><table width="100%"><tr><td> Index </td></tr></table></font>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr bgcolor="#CC0000"> <td height="1"></td> </tr> <tr> <td height="5"></td> </tr> <tr> <td> ·<a href='javascript:moreup("Catalog.asp?IDD=25525&type=1")'>目录</a>·<a href='javascript:moreup("Catalog.asp?IDD=25525&type=2")'>内容简介</a>·<a href='javascript:moreup("Catalog.asp?IDD=25525&type=5")'>作译者</a>·<a href='javascript:moreup("Catalog.asp?IDD=25525&type=6")'>前言</a>·<a href='javascript:moreup("Catalog.asp?IDD=25525&type=7")'>序言</a> </td> </tr></table></BODY></H