Earlier quoted context omitted.
For the record, I found cmake to be the best. The output is great, the convenience is awesome, the only thing that bugs me is the strange syntax, which is fine because once you set it up it gets out of your way fine.
Though it doesn't reach all the dark corners that cmake does, I found premake to be much easier to figure out and customize. All the configuration is done in Lua and you can customize the state with a normal programming language as opposed to the crazy cmake arcana you sometimes have to resort to.
When I use python extensions (often written in C), this problem doesn't arise because distutils, and sometimes cython, handle everything.
Python isn't the best C build system, but frankly it scores better than cmake and friends for ease of use.