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.
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?
-- Stuart Feldman, who wrote
make
.A salutory lesson in getting your public API right the before it becomes too public!