Managing Projects with GNU Make, 3rd Edition
The Power of GNU make for Building Anything
Publisher: O'Reilly Media
Released: November 2004
Pages: 302

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
Product Details
About the Author
Recommended for You
Customer Reviews


by PowerReviews
oreillyManaging Projects with GNU Make, 3rd Edition

(based on 7 reviews)

Ratings Distribution

  • 5 Stars



  • 4 Stars



  • 3 Stars



  • 2 Stars



  • 1 Stars



Reviewed by 7 customers

Sort by

Displaying reviews 1-7

Back to top


Lots of errors

By Mr. Lee

from Austin



    • Too many errors

    Best Uses

    • Intermediate

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    Good book, but there are many errors in the examples. It is actually quite comical.

    Overall it is still useful, but the price should be lowered to 10 bucks.

    (3 of 3 customers found this review helpful)


    It worked for me!

    By perlrtst

    from New York, NY

    About Me Developer, Sys Admin

    Verified Reviewer


    • Accurate
    • Concise
    • Easy to understand
    • Helpful examples
    • Well-written


    • Not comprehensive enough

    Best Uses

    • Intermediate
    • Novice

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    A direct result of this book is that I can now understand and use GNU make in day to day work. I think that's high praise.

    I got the ebook version, and I'd highly recommend you do the same. It's a book you'll want to be able to search through for various keywords later, and a paper book would make that far too difficult. Feel free to get both though for the easy reading of paper the first time through, and re-gift it later :-)

    I've programmed for over a decade, but it's almost entirely been in interpreted languages (perl, python, php, shell, etc). Of course I've looked at other projects/languages/etc and, of course, tried to make sense of their Makefiles. I never devoted enough time to it, because I didn't really *need* it, but I was never able to grasp what the heck it was doing... until this book.

    The book continues to serve as my first go-to reference for make, and I frequently use it, and have been using make more and more for many things that would be far more error-prone when written in shell or perl (it's very tedious to check the return code of every command and deal with failures correctly in shell/perl/etc, but in make it's just part of it's normal operation).

    I highly recommend this book. That said, it's not perfect. It seems to make some compromises between being a reference (where you could look at the table of contents or index, grab the thing you want to see, and quickly go to how that thing works - it doesn't do that well, and you have to search through the book to find an appropriate example), and a teaching book (which should read well with well explained examples in a progressive nature - this book tends to refer to external things that you're just supposed to know already, and doesn't provide as many cookbook examples as I'd like).

    The biggest thing I feel is missing is some sort of FAQ. Something like "I'm in X situation... how do I manage to get that into the way make could use it well?". It'd be difficult to write that, since make requires you to think almost backwards from how one normally composes a solution. That mindset isn't explained in the book, but it's key to being able to effectively use make (ie. rather than starting at step 1 in a process, start at the final result and determine what things it needs, then make those and repeat).

    There's lots of bits I could keep complaining about, but I don't know if those changes would make a better book... if it ended up more like the make manual, I'd still be struggling to figure it out; and if it ended up like a "for dummies" book, it'd be useless as a reference.

    I got what I needed out of it, and that's what should be the most important factor. I took a star off because it definitely leaves room for improvement, but if you've ever struggled to make sense of a Makefile, this book can get you the understanding you need.

    (3 of 6 customers found this review helpful)


    Good and inspirating

    By marzvix

    from Undisclosed

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    Somebody complains about Flex/Bison but I thank for those references in the book. It was my first contact with those amazing thing.

    Chapter 6 worth to know it better.

    Gnu Make manual is a very good material, but this book complete it usability.

    Thank very much to author for sharing valuable and accessible knowledge like this.

    (3 of 3 customers found this review helpful)


    Useful book, but could be better

    By Anonymous

    from Undisclosed

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    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.

    (4 of 4 customers found this review helpful)


    A flawed but useful book

    By marty

    from Undisclosed

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    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.

    (1 of 2 customers found this review helpful)


    See, make is a real language.

    By Richard

    from Undisclosed

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    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.

    (16 of 25 customers found this review helpful)


    GNU Make

    By Anonymous

    from Undisclosed

    Comments about oreilly Managing Projects with GNU Make, 3rd Edition:

    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


    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.

    Displaying reviews 1-7

    Back to top

    Buy 2 Get 1 Free Free Shipping Guarantee
    Buying Options
    Immediate Access - Go Digital what's this?
    Ebook: $31.99
    Formats:  APK, DAISY, ePub, Mobi, PDF
    Print & Ebook: $43.99
    Print: $39.99