I have never understood this. Making MAKE accept spaces in addition to tabs would be a backwards-compatible change. I see no reason why this could not be done even today.
If you let Make accept spaces then there’s no backwards compatible way for it to tell the difference.
You can change the behavior of make to allow a different character to be used before recipes, but then it’s not backwards compatible with other files.
"Rules start with non-whitespace"?
nonws:
<tab>echo nonws
ws:
<tab>echo wsWell, that's stupid.
And it's news to me. I have never seen a makefile that actually did this. So you could still fix the problem and be backwards-compatible for probably 99% of actual cases. And you could provide a --stupid-whitespace-mode flag for non-backwards-compatible makefies.
Honestly, I still see no legitimate reason to continue this insanity.
ifdef (something,something)
rule:
something specific recipe
else
rule:
common recipe
endif
It's also not just rules. Variable assignments are also separate from recipes, and can be indented with spaces. ifdef (something)
CFLAGS=something
else
CFLAGS=otherthing
endif