| help | account  


Managing Projects with GNU Make, 3rd Edition
View Larger Image
Robert Mecklenburg
O'Reilly Media, Paperback, 3rd edition, Published November 2004, 280 pages, ISBN 0596006101
List Price: $29.95
Our Price: $18.95
You Save: $11.00 (37% Off)


FREE Shipping on Orders over $40!*
Availability: Out-Of-Stock

Be the First to Write a Review and tell the world about this title!

People who purchase this book frequently purchase:

Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:

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.

Table of Contents

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

About the Author

Robert Mecklenburg began using Unix as a student in 1977 and has been programming professionally for 23 years. His make experience started in 1982 at NASA with Unix version 7. Robert received his Ph.D. in Computer Science from the University of Utah in 1991. Since then, he has worked in many fields ranging from mechanical CAD to bioinformatics, and he brings his extensive experience in C++, Java, and Lisp to bear on the problems of project management with make.


Forgot your password?
FAQs
Shipping Options
Returns
Your Orders
Your Account