Après trois ans de développement, le projet Waf vient de présenter une version stable numérotée 1.5.2. Il s'agit d'un système de construction de logiciel généraliste et minimaliste (license BSD), basé sur Python, utilisé par de nombreux projets libres (xmms2, midori...) ou propriétaires, sur plateformes de type Linux.
Né du constat d'un manque de flexibilité d'un grand nombre de systèmes, Waf présente un système d'extensions basé sur les aspects qui lui permet d'être extrêmement adaptable tout en mettant en avant d'excellentes performances par comparaison avec d'autres outils basés sur la génération de Makefiles (comme les Autotools) ou sur l'utilisation directe d'un langage (Scons).
Les principaux éléments de cette version sont l'intégration d'exemples similaires à Make, l'ajout d'exemples pour la compilation par lots, l'utilisation de GCC en complément du préprocesseur interne à Waf, la documentation des API par le biais du Waf Book, et diverses améliorations pour le support de plateformes autres que Linux.
Waf reprend plusieurs idées principales d'autres systèmes de construction de logiciels tels que les Autotools, Scons ou Jam :
- Configuration, compilation, installation et distribution d'un projet ;
- Compilation en parallèle ;
- Support pour divers langages tels que Ocaml, C, C++ ou Java ;
- Abstraction pour la compilation sur d'autres systèmes d'exploitation ;
- Utilisations de scripts en langage Python.