Honestly, if the makefile is well written, I will take that any day. Good makefiles are 😙👌.
They are extremely rare, tho...
I guess the solution would be a declarative language that compiles to makefiles. So that people don't have to know the nitty gritty of writing good makefiles, and can just maintain a file of their dependencies and settings...
I've always conjectured that good Makefiles existed but never seen one (or only for tiny projects). The core semantic of Makefiles is clear and straight to the point, I think the issue is in all the magic that was added to that to spare a few lines.
Why compile to a Makefile? You'd end up with automake gunk all over again. Just use cmake or so, where the declarative language replaces the Makefile entirely