Stuart Feldman wrote make at Bell Labs in 1976 to automate the compilation of large C programs, inventing the concept of dependency-driven builds in the process. Its Makefile syntax uses tabs — not spaces, tabs — to denote recipe lines, and will fail silently and mysteriously if you use spaces instead. Feldman later admitted this was a bug he noticed early and couldn’t fix because too many Makefiles already existed. Forty-nine years on, make remains the default build tool on virtually every Unix system, and the tab requirement has broken the fingers, spirits, and deadlines of every developer who’s ever edited a Makefile in a space-happy text editor. Feldman has apologised. The tab requirement remains.
Home make: The Build Tool That Treats Tabs and Spaces as Mortal Enemies






















