When comparing Rake vs Waf, the Slant community recommends Waf for most people. In the question“What are the best open-source build systems for C/C++?” Waf is ranked 10th while Rake is ranked 19th. The most important reason people chose Waf is:
You don't have to learn a domain specific syntax. If you know Python, it's a breeze.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Powerful language
You can write code for your build system in Ruby. While not my choice for general programming, Ruby is powerful and expressive. Given some knowledge of Ruby, you can create powerful Rake extensions that result in your average target only needing a few lines in the rakefile in spite of having complex behaviors (Is the library for public consumption, or only for use within the current repo/tier? Compile certain files on certain platforms? Link to libraries published from other repos? etc.).
Pro Written in Python
You don't have to learn a domain specific syntax. If you know Python, it's a breeze.
Pro File changes are tracked based on a hash of their changes not the time stamp
This means that switching branches in git isn't a big deal.
Pro Very fast
Much faster than its predecessor SCons.
Pro Fairly easy to extend
Pro Very simple graph based API
Cons
Con Slooooow
For large codebases or with complex extensions, Rake can become quite slow. I'm aware of one codebase on which it can take 15 minutes to determine that no changes have been made and no recompilation is necessary.