GNU make is the most widely used build automation tool, but it can be challenging to master and its terse language can be tough to parse for even experienced programmers. Those who run into difficulties face a long, involved struggle, often leaving unsolved problems behind and GNU make's vast potential more » untapped.
The GNU Make Book demystifies GNU make and shows you how to use its best features. You'll find a fast, thorough rundown of the basics of variables, rules, targets, and makefiles. Learn how to fix wastefully long build times and other common problems, and gain insight into more advanced capabilities, such as complex pattern rules. With this utterly pragmatic manual and cookbook, you'll make rapid progress toward becoming a more effective user.
You'll also learn how to:
* Master user-defined functions, variables, and path handling
* Weigh the pitfalls and advantages of GNU make parallelization
* Handle automatic dependency generation, rebuilding, and non-recursive make
* Modify the GNU make source and take advantage of the GNU Make Standard Library
* Create makefile assertions and debug makefiles
GNU make is known for being tricky to use, but it doesn't have to be. If you're looking for a deeper understanding of this indispensable tool, you'll find The GNU Make Book to be an indispensable guide. « less
The Power of GNU make for Building Anything
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 more » 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. « less