Ant, waf, and the rest of them are usually overkill IMHO. With makefiles the basics are simple and straightforward and I'd argue that most uses only require the basics, it's like what I've been hearing about autotools these days but even autotools seems overkill especially on Linux where we've had proper pkgconfig support everywhere for years. The same is probably true for the BSDs as well. I can't comment on Windows or OS X as I have no experince there but I imagine it must be easier to write a couple basic makefiles for 2 differnt platforms if you need. Most cross platform projects don't need as they either use Gtk, glib, Qt, etc which already pulls in all their dependencies.