Customer Reviews


17 Reviews
5 star:
 (2)
4 star:
 (7)
3 star:
 (6)
2 star:    (0)
1 star:
 (2)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


66 of 66 people found the following review helpful:
4.0 out of 5 stars A much needed, and enjoyable, book about GNU Make
I write a lot of Makefiles. In fact, I write a lot of Makefiles using
GNU Make and finally there's a book to complement the Free Software
Foundation's excellent GNU Make user guide. Also, finally, O'Reilly
has updated what must have been the worst book in their entire line
up: "Managing Projects with make"

Robert Mecklenburg's...
Published on May 16, 2005 by John Graham-Cumming

versus
11 of 12 people found the following review helpful:
1.0 out of 5 stars Terrible
I have almost no experience with writing makefiles. All I've done is edit existing makefiles until they work without really knowing what I am doing. I bought this book to fill in my knowledge. There seems to be a lot of information in this book. Unfortunately, there is a lot of information not in the book that makes it difficult to follow his examples. For example,...
Published on December 29, 2009 by K. MacDonald


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

66 of 66 people found the following review helpful:
4.0 out of 5 stars A much needed, and enjoyable, book about GNU Make, May 16, 2005
I write a lot of Makefiles. In fact, I write a lot of Makefiles using
GNU Make and finally there's a book to complement the Free Software
Foundation's excellent GNU Make user guide. Also, finally, O'Reilly
has updated what must have been the worst book in their entire line
up: "Managing Projects with make"

Robert Mecklenburg's "Managing Project with GNU Make" is a must have
book if you end up writing or maintaining GNU Make Makefiles with more
than 100 lines in them. You don't need it if all your Makefiles are
created using ./configure, but every serious Makefile hacker should
read this book.

That's not to say that the book is perfect. Far from it. I was
annoyed while reading the book by the author's frequent, annoying
small errors (e.g. on p. 58 the author states that CURDIR contains the
argument of --include-dir when in fact it contains the full path of
the directory where GNU Make is looking for Makefiles) and over use of
the $(eval) (more on $(eval) below). In fact, the number of errors in
the book were surprising for an O'Reilly tome and it looks like the
edition could use a good proof-reading. I've sent in a detailed list
to the O'Reilly folks but nothing appears on their Errata web site
yet.

The section that describes the new $(eval) and $(value) functions
available since GNU Make 3.80 is excellent (pp. 82-86). And the book
contains a good discussion of the problems inherent in using recursive
make (pp. 108-116) and how to implement a non-recursive make
(pp. 117-123). The book is worth its cover price just for these three
sections.

Where I think the book really goes off track is in trying to shoehorn
too many things into GNU Make. Specifically, the author talks quite a
bit about ANT and spends an entire chapter showing how to replace ANT
with GNU Make. I found some of the things he thinks are wrong with
ANT to be silly: for example, "The Ant <mkdir> task does not invoke
the underlying mkdir program for your system. Instead, it executes
the Java mkdir() method of the java.io.File class. This may or may
not be what you expect." Sure, if you are a GNU Make user you'd
expect that mkdir is mkdir the command; Java programms a probably
quite familiar with java.io.File and are likely not to be confused. I
think the book would have been better without this chapter.

The section on parallel and distributed Make is really light.
Although this section describes the issues associated with trying to
parallelize a build, it wold have been nice to have a description of
distcc.

There are only two books on GNU Make worth reading: this one and the
FSF's GNU Make manual. As I was reading Robert Mecklenburg's book I
couldn't help finding myself comparing it with the FSF manual (which
is the same as the info files installed with GNU Make).

Firstly, this isn't a good book to learn GNU Make from. Although Part
I of the book explains the basics of GNU Make with many examples, the
book does not provide a complete reference to GNU Make's language (for
example, Appendix A's list of command-line options is incomplete), and
has odd digressions (the section describing how += works (pp. 44-45)
makes it sound much more complex than it is) and ommissions (the
section on "Target- and Pattern-Specific Variables" (pp. 50-51) makes
no mention of pattern-specific variables at all).

Secondly, the author lurves the $(eval) function added in GNU Make
3.80. There are three problems with this: GNU Make 3.79.1 is commonly
seen in practice and doesn't contain $(eval), the implementation of
$(eval) in 3.80 has some bugs in it and the author uses $(eval) too
much, using it when it isn't needed. This hammer to crack a nut use
of $(eval) is annoying because it obscures simpler ways of writing
Makefiles.

If you get this book and know a thing or two about Make jump directly
to Part II and read about benchmarking of Make, the really useful
debugging ideas and recursive/non-recursive make. Skip back to Part I
when you've got some time on your hands and need to have a fun read;
you'll know most of the material but there are gems worth finding.
When you are done with that have a good laugh about the "extreme Make"
in Appendix B. Skip over the description of the Linux Kernel
Makefile: it seems like it might be interesting, but isn't.

If you can only buy one book about GNU Make, then buy the Free
Software Foundation's GNU Make user guide. You'll be supporting the
people who actually created GNU Make, and you'll get a complete
reference to it. If you've already got the FSF book, then get Robert
Mecklenburg's excellent "advanced user's guide".
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


11 of 12 people found the following review helpful:
1.0 out of 5 stars Terrible, December 29, 2009
By 
Amazon Verified Purchase(What's this?)
I have almost no experience with writing makefiles. All I've done is edit existing makefiles until they work without really knowing what I am doing. I bought this book to fill in my knowledge. There seems to be a lot of information in this book. Unfortunately, there is a lot of information not in the book that makes it difficult to follow his examples. For example, on p. 5 there is text in there that makes up the file 'lexer.l', but the author doesn't say this. He simply puts that text on the page, calls it a 'scanner', then I see something called 'lexer.l' in the makefile he is using. It took me a while to figure out that the 10 or so lines of text he called a 'scanner' was in fact 'lexer.l'.

The author continually does this for at least the first 20 pages, where it took me hours to figure out what files he used and what were supposed to be in the files. This should have only taken me as long as it takes to type the files into the computer. There are supposed to be five files: counter.h lexer.h count_words.c counter.c and lexer.l. I don't understand why the auther cannot simply say "the text below define *.*", then write it out, instead of making the reader guess at what he is talking about. On page 20 he talks about refactoring the 'main' program, but what he really means is creating a new file called 'counter.c' not rewriting the 'main' program in 'count_words.c'.

It's too bad the author has decided to write in such an ambiguous style because his explainations of make features are very good, unfortunately, I can't verify this using his examples because he thinks his readers can read his mind.

The frustration caused by this lack of explicitness for his examples is the reason I give this book one star. Instead of simply using his examples, I have to figure out what the heck he is talking about, then try to use them the way he is. I'm spending orders of magnitudes more on this guessing than I am on learning make, which is why this book sucks. I'm only on page 20 and all ready I don't really want to use this book. I guess if you all ready know how to use make and just want a reference, this book is probably fine as you have plenty of your own examples to follow. But I do not.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful:
3.0 out of 5 stars Does what it should do, July 1, 2007
By 
I've used make and makefiles for many years. In my current product development there was suddenly a need for a little more than the standard make knowledge. For most Open Source tools there is a good O'reilly book, so I grabbed this one from the store.

This book exactly fitted to my need. It does what it should do, it explain make, and nothing more. Already after part 1 I got useful new bits of information. Nothing major, just small "ah-ha, that's how the do it"'s.

The book is structured ok (I felt it could be structured better, but have no suggestion how). It consists of basic and advanced parts. The basic part will cover rules, variables, functions and commands. The advanced will talk about large project, C++, Java, examples and some debugging.

All the basic concepts chapters were pretty good. Somehow I didn't enjoy the advanced chapters too much. I didn't feel I was learning much new things there. The Java chapter was a little odd. I've not met any Java developer who currently uses make, most have switched to ant quite some time ago (book was 2004, so might be changed in the fourth edition). The example makefile of the book was somehow not interesting. The second example makefile was the linux kernel. This was more interesting, but it didn't go into too much details.

All in all, I found it a good book. It gave me exactly what I needed. Somehow the writing style was a little dry. I couldn't really point my finger on what made it so.

I'll give it 3 stars. Not because it's not good, but exactly because it's a good book. However, it didn't give me something extra, which I always hope a book gives me.

Recommended when needing to know more about Make :)
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 7 people found the following review helpful:
4.0 out of 5 stars Nice book; available on the net for free, June 2, 2007
By 
I've just begun reading the book and it's a nice book on GNU's make. As already mentioned, it is not a handbook but rather more like a discussion of how to best use make in your builds. That said, I'd like to point out that the text is available on the net for free. If you look at the associated O'Reilly web-page for this book, you can find the link entitled "Online Book" - click on that to see the index of the free, online book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful:
4.0 out of 5 stars An embedded developer point of view, December 13, 2009
Amazon Verified Purchase(What's this?)
I use GNU make in all my embedded firmware projects, under Linux, DOS and Windows.
This is a good book if you already know a basic use of "make". If you are completely new to make you should first search on-line documentation, I suppose.

I was a recursive-make fan before, but now I find that the non-recursive approach suggested here is really interesting. Probably the best is a mixed-architecture.

I don't like the implicit rules usage promoted: I prefer to define all the compiling options explicitly.

Make is a strange, very powerful non-procedural language for projects managing, and this book tries to explain its obscure characteristics.

If you plan to use the examples as a base for your own makefiles, take a look at the erratas on the O'Reilly website (there are some typos in the less common used procedures, personally I've found a lot in the make-depend parts).
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful:
3.0 out of 5 stars Most information is useful. Slightly disorganized, which causes a very slow read., July 17, 2009
Overall the book presents all the information you need to start using make - which is a lot of information. However, the writing style used when he's presenting sections that are supposed to be "follow along", leave a lot of holes and become tedious to figure out.

There's also a lot of "but we'll touch on that later" - which puts you in the position of having to read through a part, knowing that he'll explain something better later in the book, which will for the moment, leave you wondering what it is he's talking about. Unfortunately he does this a lot, even right in the middle of a follow along example. Arg.

I give it three stars because there aren't any other make books on make. This book does cover a lot of information and will definitely help you get started with make. Just don't expect to breeze through it without re-reading pieces of it 5 or 6 times. And definitely make sure you look at the errata for corrections.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful:
4.0 out of 5 stars Excellent resource for programmers, June 15, 2007
Make has been an icon in the GNU / Linux world for over thirty years now, and continues to be one of the most used utilities to ever be released on the platform. A good number of other projects have risen to take its place as an automated-build utility, but as of yet, none have been able to unseat Make. Some see Make as being too arcane and finicky to survive in the once it is confronted with an advanced, user-friendly, utility of the same purpose. However, as it stands now, Make is still the standard in the `industry', and Makefiles are distributed with almost every major software package on the GNU / Linux platforms (as well as some others!).

Any avid Linux or UNIX power user, as well as most system administrators, will need to have some knowledge of Make to do what they need. Programmers, on the other hand, need to have an intimate knowledge of Make, Makefiles, and what the abilities of Make are. This book is more for the latter group, and goes into detail that the former group probably doesn't need to know too much about. For the former group, I would suggest a more concise, simplified version of this book. For the programmers, this book is a must-have.

As I mentioned before, Make can be a little finicky at some points. This, some may say, is an understatement. There are a number of "gotcha's" in the language, as well as a lot of `hackish' features (when I say `hackish', think Perl `hackish'). Perhaps, more importantly, however, there are a lot of fairly advanced features that Make can handle, and few people seem to use these. This is where the book really shines - it goes over the rarely-seen, but perhaps some of the most advanced features, of the Make utility.

This might seem obvious to most, but the novel assumes that the reader has previous programming experience, and throws C++ code blocks at the reader on the third page of the first chapter. If you don't have any programming experience, you probably shouldn't be reading this book anyways - but I thought it worth mentioning.

The primary content of the book is split into two sections - basic topics, and then the more advanced topics. The author does an excellent job of starting out with the absolute basics, and slowly progressing into the more advanced topics at an easy-to-follow pace. I never felt like the pace was too fast, and the author does an excellent job of giving examples for each of the topics that require one. Each example is explained in detail, with an added bonus of a few "what-ifs" at some points.

In fact, this leads into one of my few complaints with the book. There is so much code, and so much text, and... well... nothing else. There are maybe a dozen and a half pages in the book that aren't just one big solid block of text. After a while, it becomes hard to take. It doesn't help that each page looks almost exactly the same, so after a while, things start to kind of bleed together. In the next edition, it would be nice to maybe see some page styling, new layouts, some more images / tables where possible, maybe some funny side anecdotes or something - *anything* to give the text some life.

Once you accept the pedantry of the text, you will find that it is extremely well written, and easy to understand. There were very few instances in which I had to re-read something multiple times to get an understanding of what was being communicated, and the author's ability to describe even complex topics in simple terms is really impressive at some points.

The advanced sections of the book delve into some topics that I didn't expect to see, and was honestly pleasantly surprised that they made their way into the text. Included in the list of `surprise topics' are alternatives to Make, benchmarking Make, parallel Make, distributed Make, third-party programs that work with Make to add new functionality, and even sections on Cygwin and Make.

Also in the advanced partition of the book were two other sections that I found to be extremely helpful, if not essential: Debugging Makefiles, and Example Makefiles. The Example Makefiles chapter includes both excellent Makefile examples as well as discussion of what is happening in them. The Debugging Makefiles chapter goes over a lot of the "gotcha's" in the language, how to find a problem, and then possible fixes for it. These were both nice touches to the book, and are examples of the dedication the author shows to covering the more difficult parts of the language.

For the purposes of an in-depth, complete tutorial in Make, this book succeeds wonderfully. The author, although a little pedantic in the design and layout, does an excellent job of communicating each lesson. I recommend this book to any professional or hobbies programmer looking to get a little extra control over the build process.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 5 people found the following review helpful:
3.0 out of 5 stars Well organized, competent but uninspired and biased, June 24, 2007
By 
FILIP Marius "adna" (London, United Kingdom) - See all my reviews
(REAL NAME)   
Mr. Mecklernburg is definitely an expert in GNU Make and the book shows it. The information it contains is well organized and the author doesn't spend precious time on non-essentials.

The downsize of the book consists in the total lack of fun it produces. The reader has no joy while learning about make and he may quickly find himself yawning at pages and pages of explanations with little or no examples that smooth out the learning curve.

The book seems as if the author tried to show off his knowledge with the best eficiency per page and in the smallest number of pages. He succeeded, at least with me: I am convinced that Mr. Mecklenburg is an excellent engineer but a terrible teacher.

Besides the content not being enjoyable, it is so much biased towards *nix that the Windows programmer righfully asks himself "what about me"? The solution offered by Mr. Mecklenburg for Windows consists in the... Cygwin environment. I'll abstain from commenting on this suggested choice.

Despite its drawbacks, the programmer may find enough material to learn from it and get the job done. But make no mistake: this is not a feat and you'll need quite some determination to finish this book and extract something useful out of it.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 5 people found the following review helpful:
4.0 out of 5 stars This book was a lifesaver, April 27, 2005
By 
Stephen Rowe (Bellevue, WA United States) - See all my reviews
(REAL NAME)   
Amazon Verified Purchase(What's this?)
I'm taking an operating systems class. As part of that class, we had to modify an existing operating system. To do that required modifying the makefile system to add our modules. I tried understanding make from the man pages and tutorials on the web. They are either a reference or cover too small a subset of tasks. This book covers the topic thoroughly but in an instructional manner which is easy to learn from. My only complaint is that sometimes there is functionality talked about without accompanying examples. That makes it hard to understand how things work together.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 8 people found the following review helpful:
3.0 out of 5 stars Good as a basis, but there are much more tricks!, August 9, 2005
In general I like the book and the way it is written. It gives a good introduction into all the aspects of make.
However I wonder how many large projects have been handled by the guy and how much he knows about some stuff. Two examples from the top of my head. He know no usage for the '::' operator, while for example building a clean target from different areas of the makefile is a great example!
Secondly he describes a while loop for doing a recursive make that does not stop when a sub-make fails, while adding a simple "set -e" would do that perfectly fine!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

This product

Managing Projects with GNU Make (Nutshell Handbooks)
$23.99 $17.27
Add to wishlist See buying options