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.
Of course, I began to write a build system using make, but an odd thing happened. Many of the developers were reluctant to use any command-line tool. Further, many did not have a firm grasp of such concepts as environment variables, command-line options, or an understanding of the tools used to build programs. The IDE hid all of these issues. To address these issues, the build system I was writing became more complex. I began to add better error messages, precondition checking, management of the developer's machine configuration, and support for IDEs.
Along the way, I'd read the GNU make manual several dozen times. As I looked for more material, I found the second edition of this book. It was filled with valuable material, but was sadly lacking in details of GNU make. That wasn't surprising, considering its age. The volume had stood the test of time, but by 2003 needed updating. The third edition focuses primarily on GNU make. As Paul Smith (the GNU make maintainer) writes: "Don't hassle with writing portable `makefiles', use a portable make instead!"