I would pick one of the more configurable build tools like ant or maven, as a starting point.
Ant is highly configurable, and worst case you can use it to exec another build process (like, make, or whatever you normally use for C++).
Maven also has a number of plugins natively supported for other languages besides java. A quick search of the plugins page shows that maven has native support to build C and C++ code, a google search also hinted at 3rd party plugins that will build your python project as well.
While ant is powerful and configurable, I agree that you sometimes have to hack ant to get it to do what you want, which is neither clean nor desirable. Having worked on my project with maven over the past year, I highly recommend it. We use it to build our java code base, action script front end, run unit and integration tests, and run our database scripts. Moreover, it has great hooks to our continuous integration tools so the builds we run can be automated. With a large number of plugins available, we haven't found much that maven can't do for us.