Foreword
The make
utility is an enticing servant, always there and always accommodating. Like the indispensable sidekicks found in many novels and movies, make
starts out as the underappreciated supplicant to whom you throw a few odd jobs, and then gradually takes over the entire enterprise.
I had reached the terminal stage of putting make
at the center of every project I touched when Steve Talbott, my supervisor and the author of the original O’Reilly classic Managing Projects with make, noticed my obsession and asked me to write the second edition. It proved to be a key growth experience for me (as well as a pretty wild ride) and my entry into the wonderful world of O’Reilly, but we didn’t really think about how long the result would stay on the market. Thirteen years for one edition?
Enthralled in the memories of those days long ago when I was a professional technical writer, I’ll indulge myself with a bulleted list to summarize the evolution of make
since the second edition of Managing Projects with make hit the stands:
The GNU version of
make
, already the choice of most serious coders when the second edition of the book came out, overran the industry and turned into the de facto standard.The rise of GNU/Linux made the GNU compiler tool chain even more common, and that includes the GNU version of
make
. As just one example, the Linux kernel itself relies heavily on extensions provided by GNUmake
, as documented in Chapter 11 of this book.The adoption of a variant of BSD (Darwin) as the core of Mac OS X continues the trend toward the dominance of the GNU tool chain and GNU
make
.More and more tricks are being discovered for using
make
in a robust, error-free, portable, and flexible way. Standard solutions to common problems on large projects have grown up in the programming community. It’s time to move many of these solutions from the realm of folklore to the realm of documented practices, as this book does.In particular, new practices are required to adapt
make
to the C++ and Java™ languages, which did not exist whenmake
was invented. To illustrate the shifting sands of time, the originalmake
contained special features to support two variants of FORTRAN—of which vestiges remain!—and rather ineffective integration with SCCS.)Against all odds,
make
has remained a critical tool for nearly all computer development projects. None ofmake
’s many (and insightful) critics would have predicted this 13 years ago. Over these years, replacements sprang up repeatedly, as if dragon’s teeth had been sown. Each new tool was supposed to bypass the limitations inmake
’s design, and most were indeed ingenious and admirable. Yet the simplicity ofmake
has kept it supreme.
As I watched these trends, it had been in the back of my mind for about a decade to write a new edition of Managing Projects with make. But I sensed that someone with a broader range of professional experience than mine was required. Finally, Robert Mecklenburg came along and wowed us all at O’Reilly with his expertise. I was happy to let him take over the book and to retire to the role of kibitzer, which earns me a mention on the copyright page of this book. (Incidentally, we put the book under the GNU Free Documentation License to mirror the GPL status of GNU make
.)
Robert is too modest to tout his Ph.D., but the depth and precision of thinking he must have applied to that endeavor comes through clearly in this book. Perhaps more important to the book is his focus on practicality. He’s committed to making make
work for you, and this commitment ranges from being alert about efficiency to being clever about making even typographical errors in makefiles self-documenting.
This is a great moment: the creation of a new edition of one of O’Reilly’s earliest and most enduring books. Sit back and read about how an unassuming little tool at the background of almost every project embodies powers you never imagined. Don’t settle for creaky and unsatisfying makefiles—expand your potential today.
—Andy Oram
Editor, O’Reilly Media
August 19, 2004
Get Managing Projects with GNU Make, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.