- Waf
Infobox_Software
name = Waf
caption =
developer =
latest_release_version = 1.4.3
latest_release_date = June 22, 2008
operating_system = Windows,POSIX
genre =Software development tools
license =New BSD License
website = [http://code.google.com/p/waf/ http://code.google.com/p/waf/]Waf, the successor to BKsys, is a
software build system, that is, a program to assist in automatic compilation of other programs. Waf is inspired by and descended fromSCons , though it is a separate project, and their build scripts are incompatible.Features
Waf aims at being portable and lightweight, yet offering programmers a real programming language, similarly to SCons. Therefore it depends on Python (which is the only external dependency of Waf). Compared to "configure" scripts generated by GNU Autotools, it adds a prerequisite that, unlike sh, might not be present on every
Unix -like system; however, being written in Python, it's much more portable to non-Unix systems, and significantly easier to understand than the esoteric mixture of shell and M4 code and custom languages built on top of them, as utilised by Autotools.Some of the advertised features in Waf 1.2 include:
* Coloured output and progress bar display
* Scripts are python modules
* XML script front-end and a dedicated, easy-to-parse "IDE output" mode to ease the interaction with integrated development environments
* A C/C++ preprocessor for computing dependencies
* Modular configuration scheme with customizablecommand-line parsing
* Daemon mode for background recompilation
* Find source files intelligently (glob() -like) to ease script maintenance
* Support forOCaml and hybrid programs, support forGNOME programs
* No installation required: the waf script (only 95 KB) can be distributed and used directly
* Support for standard targets: configure, build, clean, distclean, install, and uninstall
* Support for global object cache to avoid unnecessary recompilations
* Support for unit tests run on programs at the end of builds
* Support for theD programming language (both gdc and dmd are supported)History
Waf was originally created by Thomas Nagy as BKsys, when the
KDE project decided to move to SCons as their primary build system, instead of previously used Autotools.BKsys was designed to sit on top of SCons, providing higher-level functionality similar to that of Autotools. When Thomas Nagy decided that SCons' fundamental issues (most notably the bad scalability) were too complex and time-consuming to fix, he started a complete rewrite named "Waf".
Waf was subject to some attention when the
KDE project decided to use BKsys (and later Waf) as its primary build system, although later, that decision was revoked in favor ofCMake because BKsys could not solve the SCons problems, and Waf was still in a very early pre-alpha stage at this point. [http://lwn.net/Articles/188693/]Projects known to be using Waf
*
XMMS2
*KsirK
*Semantik (previously Kdissert)
*NS3 , the successor to the NS2 network simulator
*ReSP , a virtual platform for the design of hardware architectures
*JACK2 Jack Audio Connection KitExternal links
* [http://code.google.com/p/waf/ Waf's homepage] (moved from [http://freehackers.org/~tnagy/waf.html Waf's old homepage] )
* [http://wiki.xmms2.xmms.se/index.php/Waf XMMS2 page concerning Waf]
* [http://hughsient.livejournal.com/11016.html?thread=107016 GNOME using waf?]
* [http://kde-apps.org/content/show.php/waf?content=19243 waf kde-apps page]
Wikimedia Foundation. 2010.