Managing Projects with GNU Make 3rd Edition
Use the Power of GNU Make to Build Anything
Samenvatting
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 'Managing Projects with GNU Make', readers will learn why this utility continues to hold its top position in project build software, despite many younger competitors.
The premise behind Make is simple: after you change source files and want to rebuild your program or other output files, make checks timestamps to see what has changed and rebuilds just what you need, without wasting time rebuilding other files. But on top of this simple principle, make layers a rich collection of options that lets you manipulate multiple directories, build different versions of programs for different platforms, and customize your builds in other ways.
This edition focuses on the GNU version of Make, which has deservedly become the industry standard. GNU Make contains powerful extensions that are explored in this book. It is also popular because it is free software and provides a version for almost every platform, including a version for Microsoft Windows as part of the free Cygwin project. 'Managing Projects with GNU Make, 3rd Edition' provides guidelines on meeting the needs of large, modern projects. Also added are a number of interesting advanced topics such as portability, parallelism, and use with Java.
Robert Mecklenburg, author of the third edition, has used make for decades with a variety of platforms and languages. In this book he zealously lays forth how to get your builds to be as efficient as possible, reduce maintenance, avoid errors, and thoroughly understand what Make is doing. Chapters on C++ and Java provide makefile entries optimized for projects in those languages. The author even includes a discussion of the Makefile used to build the book
Specificaties
Inhoudsopgave
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
Anderen die dit boek kochten, kochten ook
Net verschenen
Rubrieken
- aanbestedingsrecht
- aansprakelijkheids- en verzekeringsrecht
- accountancy
- algemeen juridisch
- arbeidsrecht
- bank- en effectenrecht
- bestuursrecht
- bouwrecht
- burgerlijk recht en procesrecht
- europees-internationaal recht
- fiscaal recht
- gezondheidsrecht
- insolventierecht
- intellectuele eigendom en ict-recht
- management
- mens en maatschappij
- milieu- en omgevingsrecht
- notarieel recht
- ondernemingsrecht
- pensioenrecht
- personen- en familierecht
- sociale zekerheidsrecht
- staatsrecht
- strafrecht en criminologie
- vastgoed- en huurrecht
- vreemdelingenrecht