My project has been using autotools for a very long time for our Linux build, and it's done the job alright. But the build files haven't been maintained well. There's a lot of deprecated calls being made, and there are also occasional issues with finding library dependencies correctly. I looked into fixing these issues and found the amount of work would be non-trivial. A fork of my project changed the build system to CMake and that has seemed to work well for them. I was considering moving us to CMake as well, but I'm unsure of the trade-offs and whether it would be more beneficial to stick with what we have already.
My ideal build system would:
1) Be fine with having only a single makefile for the entire source tree (I would hate to have a makefile in each of our 20+ sub-directories)
2) Allow build files (C++ .o files, for instance) to be placed in a specified directory, and not in the base directory or the same directory as the source code
3) Be easy to use and maintain, and not require writing custom macro code to satisfy certain requirements (we have some m4 scripts for our autotools build)
4) If possible, be cross-platform so it can be used on Linux and Windows with MinGW. OS X support would be nice as well