|
|
Waf is a Python-based framework for configuring, compiling and installing applications. It is a replacement for other tools such as Autotools, Scons, CMake or Ant.
Features
- Easy to use: Waf configuration files are written in Python which is mainstream scripting language
- Easy to install and to distribute: Waf fits entirely in a single 100KB redistributable file which does not require any installation whatsoever
- Portable: Waf only depends on Python which is ported onto most operating systems
- Fast: Waf is much faster than autotools. For example in one a complete build (autogen.sh, make, make install) of Cheese just takes 6.7 seconds vs 22.2 seconds using autotools. Waf can also run multiple jobs in parallel (the -j command line option), and provides a cache for not recompiling the files all over again (like ccache).
- Reliable: Waf computes the target dependencies on the files contents (md5) to build the targets when the source files change.
- Nice textual output You can have colored output, have progress bars or just see all the commands that get executed.
- Broad support for languages and tools: Waf is already used for C, C++, C#, D, java, ocaml, python project, and provides various tools for processing docbook, man pages, intltool, msgfmt
- Easy to extend: Because Waf has a carefully designed object oriented architecture it is easy to add new features
- Ability to uninstall unless autotools cheese has the standard functionality to also uninstall programs it installed
Documentation
You can find the documentation at the following places
- Wiki
- Manual
- Old Manual
- Example projects which show how to use Waf for different languages and projects
If you like you can help us improving documentation by adding or changing stuff on the Wiki. You can ask for rights to change the Wiki pages on the mailing-list
Contact
Google Groups / Mailing list
The mailing list is located at waf-users
IRC
You can also visit us on irc in the #waf room on irc.freenode.org
Contributing
You can contribute Waf in the following ways
- File issues or ideas for improvement in our Issue Tracker
- Improve documentation on the Wiki
- Use Waf to build your own software
- Improve Waf itself by changing it's Source code
- Browse the most recent changes
Screenshots
The colorful console output of waf
The progress bar if you use the -p option
