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 Managi ...
Some may find it difficult to evaluate this book apart from Make the tool. I just like reading technical manuals. If you use Make or might use Make this is an excellent book to read. If you do not want to use Make read this anyway just so you can explain why some other build tool is better suited to your needs. In the hands of the truly genius unafraid of complexity this book can help create quite a puzzle for engineers that come after. I would urge users of any build tool to consider how best to design in and exploit information inherent in the filesystem organization of input build artifacts before making their build more complicated. This text touches upon the subject but is far from comprehensive.
Some of my reading notes:
- Read through before using as a reference - Lots of examples of what not to do which tells a good story but makes for dangerous reference if you're not careful - Any typos while seemingly unavoidable are all that much more painful when in command line and code examples - You will remember page 16. Why not put a handy table of automatic variables on the front or back inside cover?
I've read the first part (chapters 1-5) in it's entirety and I cannot stress enough how invaluable the knowledge here is. Even though 'make' feels like an outdated tool, I've seen it used today in many systems. Copying and pasting from other makefiles will only bring you so far, and once you've hit upon a true difficulty, where you need to build a system from scratch, linking with custom libraries and LSPs, you HAVE to know the nitty-gritty details of how 'make' works. This book is the perfect place to start. Not if you're a beginner, but if you've hit that wall I'm describing. Understanding targets, prerequisites, rules, variables, phony targets, recursive make, and more - all of these are explained clearly and succinctly.
This is a must read for anyone using 'make' anywhere in their projects, and even for those that want to use more modern build systems. I do not recommend this book to beginners, or people who haven't encountered 'make' "in the wild".
I admit I've only skimmed the later parts of the book, but will definitely come back to the book once I need a helping hand in anything 'make' related.
It's a good book for start learning Make Files from Scratch to advanced, it shows you the power of make and add new knowledge which you'll not found in many sites that talked about Make, like improving performance, how to make it portable and how to debug it, also it list some of common Errors. the book start with Hello World Make File then go throw more rules,variables, commands and function then go throw advanced topics like make it portable, faster and how to debug it, last chapter have many advanced example of Make Files. This Book like gnu manual but the information well explained with many example.
2nd Ed. is quite old, but even when it was new, this book was great. I enjoyed learning about make - and learned that I should avoid make for any new projects. The book makes it very clear that compatibility is a nightmare, the syntax is awful, yet it is an excellent reference and detailed as a guide.
I recommend this for anyone considering make for future projects, and for anyone burdened by inheriting a project using make.
Incredible book. The best way to describe it is "The beginner to advanced guide to GNU Make". Loved it and now I know everything to automate the building process in my projects.