What you are describing is autoconf, not make. Make by itself is actually a very handy tool for performing tasks that have a dependency graph.
Autoconf.. Well, I can't disagree. It's a hack built on top of a hack and should probably be rethought. Once autoconf is done generating Makefiles, make itself is generally trouble-free.
http://freecode.com/articles/stop-the-autoconf-insanity-why-...