on 25 April 2005
I got a lot out of this book: it has taken my understanding of Make forward by leaps, and in ways that reading tutorials and the man-page never managed.
I came to Make from IDE's that do things for you, and despite using Make to build existing projects I didn't do much with it myself. Recently I needed to create my own makefile. Make is so complex that its difficult to find good information that goes beyond the very basics but isn't full of the strange incantations of Make gurus.
This book helped me bridge the gap. It explains clearly the simple stuff, and it takes you through the intermediate stuff. There are chapters beyond where I needed, so I can't tell you if it is good at introducing the advanced stuff.
I learned that make is a very powerful tool, with a powerful embedded programming language. I learned how to get my jobs done with it, and some of what I could maybe do if I needed to at some point. My makefiles are much bigger now, but they are also more powerful - performing backups, version control checkouts, creating release builds and installers, applying security. All jobs I used to do by hand with lots of icon-clicking, but now can be done seemlessly. All stuff I wouldn't have had confidence to try without the help from this book.
The only criticism of the book is that it jumps around a bit (or it seemed to for me). I guess this a side-effect of it being written by several people over several years. Some chapters use material that hasn't been introduced yet, and others go back over stuff that's been amply covered before.
Its not a major criticism (hence the 4 stars) and a couple of trips to the Index got me through. I'd definitely recommend this book if you want to take more control over your large project builds.
on 9 March 2011
It could just be me. I'm on page 90, having hacked my way through some seriously dense bash scripting/make/java compilation combinations, and I still don't know how to set up a basic Makefile for a relatively simple C++ project with different directories for source, header, and object files.
Maybe it isn't simple. Maybe I've picked the wrong tool with make, and am taking it out on the book.
But I can't believe that I need to read about all the arcane rules behind the 2-stage variable & macro expansion, and all the ugly control structures that make-as-a-sub-par-programming-language-rather-than-build-tool possesses, before I see a make file that compiles an average C++ project.
If I do, then I offer my apologies to the author, for I have indeed picked the wrong tool, but as it stands, it feels like the author's enthusiasm to communicate the obscure minutae of make has completely obfuscated how one might practically use it. You get the impression that he prefers coding in make to coding in whatever real language a project is supposed to be built with.
Man, I wish the Pragmatic Programmers had written a make book!
on 3 May 2007
Great book that brought us light years ahead when we wanted to use Gnu Make from Eclipse, to organise complicated projects in complicated directory structures.
One star is deducted for factual errors in the examples (sloppy testing or transfer of examples?) and for the somewhat jumping around between topics. But much better than the Gnu Make manual (which, however, also is indispensible!)
There are many ideas that we could use. That is the spirit to use this - don't expect to find a boiler plate example, but many ideas and examples to incorporate in your final work.
on 16 May 2007
When I read this book, I was looking at a build system that's based on GNU make that has been ill maintained for quite some time. So I had several "how can I do this?" questions on my mind.
This book helped me improve my understanding of GNU make a lot. I own and have read the 2nd edition of the book (which isn't specific to GNU make). I found this edition considerably clearer - probably at least partly due to it being better focused on the tool that I use. This extra knowledge should aid me to solve most of the problems that we're having.