Managing projects with GNU make
The utility simply known as make is one of the most enduring features of both Unix and other operating systems. First invented in the 1970s, make still turns up to this day as the central engine in most programming projects; it even builds the Linux kernel. In the third edition of the classic Managi...
Main Author: | |
---|---|
Other Authors: | |
Format: | eBook |
Language: | Inglés |
Published: |
Sebastapol, California :
O'Reilly
2004.
|
Edition: | 3rd ed |
Subjects: | |
See on Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626890806719 |
Table of Contents:
- Managing Projects with GNU Make, 3rd Edition; Dedication; Preface; What&s New in This Edition; Conventions Used in This Book; Using Code Examples; Comments and Questions; Acknowledgments; I. Basic Concepts; 1.2. Dependency Checking; 1.3. Minimizing Rebuilds; 1.4. Invoking make; 1.5. Basic Makefile Syntax; 2. Rules; 2.1.2. Phony Targets; 2.1.3. Empty Targets; 2.2. Variables; 2.3. Finding Files with VPATH and vpath; 2.4. Pattern Rules; 2.4.2. Static Pattern Rules; 2.4.3. Suffix Rules; 2.5. The Implicit Rules Database; 2.5.2. Rule Structure; 2.5.3. Implicit Rules for Source Control
- 2.5.4. A Simple Help Command2.6. Special Targets; 2.7. Automatic Dependency Generation; 2.8. Managing Libraries; 2.8.2. Using Libraries as Prerequisites; 2.8.3. Double-Colon Rules; 3. Variables and Macros; 3.2. Variable Types; 3.3. Macros; 3.4. When Variables Are Expanded; 3.5. Target- and Pattern-Specific Variables; 3.6. Where Variables Come From; 3.7. Conditional and include Processing; 3.7.2. include and Dependencies; 3.8. Standard make Variables; 4. Functions; 4.2. Built-in Functions; 4.2.2. Important Miscellaneous Functions; 4.2.3. Filename Functions; 4.2.4. Flow Control
- 4.2.5. Less Important Miscellaneous Functions4.3. Advanced User-Defined Functions; 4.3.2. Hooking Functions; 4.3.3. Passing Parameters; 5. Commands; 5.1.2. Command Modifiers; 5.1.3. Errors and Interrupts; 5.2. Which Shell to Use; 5.3. Empty Commands; 5.4. Command Environment; 5.5. Evaluating Commands; 5.6. Command-Line Limits; II. Advanced and Specialized Topics; 6.1.2. Passing Variables; 6.1.3. Error Handling; 6.1.4. Building Other Targets; 6.1.5. Cross-Makefile Dependencies; 6.1.6. Avoiding Duplicate Code; 6.2. Nonrecursive make; 6.3. Components of Large Systems; 6.4. Filesystem Layout
- 6.5. Automating Builds and Testing7. Portable Makefiles; 7.2. Cygwin; 7.2.2. Filesystem; 7.2.3. Program Conflicts; 7.3. Managing Programs and Files; 7.4. Working with Nonportable Tools; 7.5. Automake; 8. C and C++; 8.1.2. The Hard Way; 8.2. Read-Only Source; 8.3. Dependency Generation; 8.3.2. makedepend Programs; 8.4. Supporting Multiple Binary Trees; 8.5. Partial Source Trees; 8.6. Reference Builds, Libraries, and Installers; 9. Java; 9.1.2. IDEs; 9.2. A Generic Java Makefile; 9.3. Compiling Java; 9.3.2. Compiling with Dependencies; 9.3.3. Setting CLASSPATH; 9.4. Managing Jars
- 9.5. Reference Trees and Third-Party Jars9.6. Enterprise JavaBeans; 10. Improving the Performance of make; 10.2. Identifying and Handling Bottlenecks; 10.2.2. Disabling @; 10.2.3. Lazy Initialization; 10.3. Parallel make; 10.4. Distributed make; 11. Example Makefiles; 11.1.2. XML Preprocessing; 11.1.3. Generating Output; 11.1.4. Validating the Source; 11.2. The Linux Kernel Makefile; 11.2.2. Configuration Versus Building; 11.2.3. Managing Command Echo; 11.2.4. User-Defined Functions; 12. Debugging Makefiles; 12.1.1.2. -print-data-base; 12.1.1.3. -warn-undefined-variables
- 12.1.2. The -debug Option