That breaks backwards compatibility since a rule line can start with spaces:
nonws:
<tab>echo nonws
ws:
<tab>echo ws 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