DEV Community

Discussion on: What is a Makefile and how do I use them

Collapse
 
gypsydave5 profile image
David Wickes

Nice article - a small correction: Makefile isn't case sensitive - you can also just have a Makefile called... well, makefile.

Also, you failed to mention "one of the worst design botches in the history of Unix", in the words of Eric S. Raymond - namely that each of the command lines needs to be indented with a tab character and only a tab character - no spaces allowed!

Why, you ask?

Why the tab in column 1? Yacc was new, Lex was brand new. I hadn't tried either, so I figured this would be a good excuse to learn. After getting myself snarled up with my first stab at Lex, I just did something simple with the pattern newline-tab. It worked, it stayed. And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn't want to screw up my embedded base. The rest, sadly, is history.

-- Stuart Feldman, who wrote make.

A salutory lesson in getting your public API right the before it becomes too public!