BUY THIS BOOK
Add to Cart

Print Book $29.95


Add to Cart

Print+PDF $38.94

Add to Cart

PDF $23.99

Safari Books Online

What is this?

Add to UK Cart

Print Book £20.95

What is this?

Looking to Reprint or License this content?

Managing Projects with GNU Make, Third Edition

By Robert Mecklenburg
November 2004
Pages: 300
ISBN 10: 0-596-00610-1 | ISBN 13: 9780596006105
starstarstarstarstar (Average of 4 Customer Reviews)

Buy 2 Get 1 Free Free ShippingGuarantee

Description

Managing Projects with GNU make, 3rd Edition provides guidelines on meeting the needs of large, modern projects. This edition focuses on the GNU version of make, which has deservedly become the industry standard. GNU's powerful extensions are explored in this book, including a number of interesting advanced topics such as portability, parallelism, and use with Java. make is 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.
Full Description

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.



Featured customer reviews

Write a Review


Useful book, but could be better,  September 02 2007
Rating: StarStarStarStarStar
Submitted by Anonymous Reader   [Respond | View]

I have found this book useful though not as much interesting as I expected. I believe this book can be a good addition to the GNU make manual. There are certain
things that are better explained in the book, but many others where the manual is superior. If you doubt whether you want to read this book then you may look at examples to see if there is something interesting in them -- something that you don't know yet.

The book assumes that a reader is at least vaguely familiar with C and Lex. So when the author presents his examples, he does not stop to explain that main() is the entry point of C program or that yylex() is the main function of a scanner, which reads tokens.


A flawed but useful book,  May 02 2006
Rating: StarStarStarStarStar
Submitted by marty   [Respond | View]

I've been using gnu make for over a decade.

Everytime I read the make manual, I learn something new.

This book also taught me a few things -- but there are so many typos and windowisms...

If you spend a lot of effort and time writing make files, the book is useful, but for casual users the make manual is far superior.

Very disappointed -- was expecting much more.


See, make is a real language.,  April 01 2006
Rating: StarStarStarStarStar
Submitted by Richard   [Respond | View]


I'm impressed, I bought this as a aside to the standard GNU Make manual published by the FSF.

This is much more useful.

I don't need a inrtoductory book - I've designed and implemented multiple commercial operating system build system, I'm looking for ideas on how to build better build systems.

The explanation of the kernel build system helped, and the data structures examples was truly innovative.

Its interesting to see someone expose the full power of make, most are content to write minimal and naive Makefiles, or concentate on a single program - things get more "interesting" when you have a complete multiple project suite to build.

Read all reviews


GNU Make,  February 01 2006
Submitted by Anonymous Reader   [Respond | View]

good point...I've been using Unix for 25 years, so this was second nature.


Not only that, he doesn't explain how his makefiles are custom tuned for HIS system --
on page 37 he uses /lib/libfl.a (on redhat its
/usr/lib/libfl.a.


GNU Make,  January 10 2006
Rating: StarStarStarStarStar
Submitted by Anonymous Reader   [Respond | View]

GNU Make by Mecklenburg is a fine example of how not to teach. On the third page the author suddenly uses the term "flex scanner" without any attempt at defining the term. You are supposed to know what it means. Actually people who are well acquainted with flex scanners will also know about GNU Make so the book is not addressed at anybody's needs.
On this page he writes "Here is a program to count" etc. What follows is a most curious C program. There is a function yylex which is called but never defined. Eagerly one reads on and he shows you a scanner, an undefined entity. It looks like program code except for the %%. I have seriously (more than one year each) programmed in LISP, IBM 360-370 Assembler, PL1, Cobol, Fortran, Pascal,C and for the last 14 years C++. There is no compiler for any of these languages which would accept the symbol %%. What does it mean? After a day's study looking in vain through the whole book, in which there are frequent allusions to the flex scanner(or flex scanner generator?) I finally guess that, contrary to the author's statement, this is not program code; it is data. So what is inside the function named yylex? One still doesn't
know.
Here is a person who doesn't know how to teach; uses terms without defining them and yet gets to put out three incarnations of his book! My former high impression of O'Reilly has dropped a lot. I have bought many O'Reilly books but from now on I will be extremely careful not to waste
my money on any of them. I will make sure that I have personally and in detail looked at every alternative book.
Unsurprisingly the author doesn't deign to add
problems with answers. The learning process is
unfamiliar to him.
Enough said.


Media reviews "If all your Makefiles are created by ./configure, or they fit on one screen, then this book isn't for you. For everyone else, it's the essential companion volume for the Free Software Foundation's GNU Make Manual."
--John Graham-Cumming, Unix Review, June 2005

Read all reviews

See larger cover