Waf is a build system framework for configuring, compiling and installing applications.
Features:
Automatic build order: the build order is computed from input and output files, among others
Automatic dependencies: tasks to execute are detected by hashing files and commands
Performance: tasks are executed in parallel automatically, the startup time is meant to be fast (separation between configuration and build)
Flexibility: new commands and tasks can be added very easily through subclassing, bottlenecks for specific builds can be eliminated through dynamic method replacement
Extensibility: though many programming languages and compilers are already supported by default, many others are available as extensions
IDE support: Eclipse, Visual Studio and Xcode project generators (waflib/extras/)
Documentation: the application is based on a robust model documented in The Waf Book and in the API docs
Python compatibility: cPython 2.7 to 3.x, Jython 2.7 and PyPy