fbpx
Wikipedia

Waf (build system)

Waf is a build automation tool designed to assist in the automatic compilation and installation of computer software. It is written in Python and maintained by Thomas Nagy.

Developer(s)Thomas Nagy
Stable release
2.0.25 / January 1, 2023; 10 months ago (2023-01-01)
Repository
  • gitlab.com/ita1024/waf/
Written inPython[1]
Operating systemMS Windows, POSIX
TypeSoftware development tools
LicenseNew BSD License (source code), CC-BY-NC-ND (documentation)
Websitewaf.io

Waf's source code is open source software, released under the terms of the New BSD License, though its accompanying documentation is under the CC-BY-NC-ND license, which forbids both modification and commercial redistribution: this prevents vendors such as the Debian project from including Waf documentation in their distributions.

History edit

Thomas Nagy created a build automation tool called BKsys which was designed to sit on top of SCons, providing higher-level functionality similar to that of Autotools. This was part of an effort for switching KDE away from Autotools to a more modern build system in the beginning stages of the KDE 4 development cycle. BKsys/SCons was chosen by the KDE community as their new standard build system.[2] When Thomas Nagy decided that SCons's fundamental issues (most notably the poor scalability) were too complex and time-consuming to fix, he started a complete rewrite which he named Waf. With BKsys being recognized as a dead end, KDE decided to switch to CMake instead;[3] however, Waf continued to be maintained as an individual project and has since seen prolific development and adoption by other communities.[citation needed]

Features edit

Waf features:

  • Portable to Unix and non-Unix systems
  • Lightweight
  • Offers a Turing-complete programming language (similar to SCons)
  • Support for standard targets: configure, build, clean, distclean, install, and uninstall
  • Parallel builds
  • Colored 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
  • Modular configuration scheme with customizable command-line parsing
  • Daemon mode for background recompilation
  • Find source files intelligently (glob()-like) to ease script maintenance
  • Support for global object cache to avoid unnecessary recompilations
  • Support for unit tests run on programs at the end of builds

Waf supports:

Waf is written in Python. Rather than being intended to be installed as a prerequisite piece of system software, as with build systems such as GNU make, it is distributed as a script including an embedded archive file, intended to be run to unpack the Waf sources within a project's own source tree.

License edit

Waf's source code is released under the terms of the New BSD License. However, Nagy's intent is that Waf is to be included as part of an individual software project rather than installed as a system-wide build system. To that effect, the documentation which is shipped as part of the Waf release is under the CC-BY-NC-ND license, which forbids both modification and commercial redistribution: this change was made in order to obstruct the Debian project from including Waf as a system-wide software package.[4] While Debian initially simply refrained from including documentation, a direct request from Nagy made Debian remove Waf and discourage its use as a build system.[5]

Debian developer Ian Jackson opined that using Waf as distributed in a build system for software under the terms of the GNU General Public License (GNU GPL) would be in breach of the terms of that license, as the unpacking script produces an obfuscated copy of its original source code rather than the "preferred form for modification", as is required by the GPL's wording on build systems.[6]

See also edit

References edit

  1. ^ "Waf". Analysis Summary. Ohloh. Retrieved 2010-12-19.
  2. ^ Riddell, Jonathan (11 September 2005). "KDE to Migrate to bksys/SCons Build System". KDE Dot News. Retrieved 9 May 2012.
  3. ^ Unrau, Troy (22 February 2007). "The Road to KDE 4: CMake, a New Build System for KDE". KDE Dot News. Retrieved 9 May 2012.
  4. ^ Nagy, Thomas (2 Oct 2009), "Configuration environment in custom targets", Waf users (mailing list).
  5. ^ Falavigna, Luca (27 Feb 2010), "Intent to remove waf from Debian", Debian devel (mailing list), Debian.
  6. ^ Jackson, Ian (7 Feb 2012), "Doesn't contain source for waf binary code", Debian devel (mailing list), Debian.

External links edit

  • Official website

build, system, other, uses, this, article, relies, excessively, references, primary, sources, please, improve, this, article, adding, secondary, tertiary, sources, find, sources, build, system, news, newspapers, books, scholar, jstor, february, 2012, learn, wh. For other uses see WAF This article relies excessively on references to primary sources Please improve this article by adding secondary or tertiary sources Find sources Waf build system news newspapers books scholar JSTOR February 2012 Learn how and when to remove this template message Waf is a build automation tool designed to assist in the automatic compilation and installation of computer software It is written in Python and maintained by Thomas Nagy Developer s Thomas NagyStable release2 0 25 January 1 2023 10 months ago 2023 01 01 Repositorygitlab wbr com wbr ita1024 wbr waf wbr Written inPython 1 Operating systemMS Windows POSIXTypeSoftware development toolsLicenseNew BSD License source code CC BY NC ND documentation Websitewaf wbr ioWaf s source code is open source software released under the terms of the New BSD License though its accompanying documentation is under the CC BY NC ND license which forbids both modification and commercial redistribution this prevents vendors such as the Debian project from including Waf documentation in their distributions Contents 1 History 2 Features 3 License 4 See also 5 References 6 External linksHistory editThomas Nagy created a build automation tool called BKsys which was designed to sit on top of SCons providing higher level functionality similar to that of Autotools This was part of an effort for switching KDE away from Autotools to a more modern build system in the beginning stages of the KDE 4 development cycle BKsys SCons was chosen by the KDE community as their new standard build system 2 When Thomas Nagy decided that SCons s fundamental issues most notably the poor scalability were too complex and time consuming to fix he started a complete rewrite which he named Waf With BKsys being recognized as a dead end KDE decided to switch to CMake instead 3 however Waf continued to be maintained as an individual project and has since seen prolific development and adoption by other communities citation needed Features editThis section does not cite any sources Please help improve this section by adding citations to reliable sources Unsourced material may be challenged and removed August 2012 Learn how and when to remove this template message This section is in list format but may read better as prose You can help by converting this section if appropriate Editing help is available February 2012 Waf features Portable to Unix and non Unix systems Lightweight Offers a Turing complete programming language similar to SCons Support for standard targets configure build clean distclean install and uninstall Parallel builds Colored 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 Modular configuration scheme with customizable command line parsing Daemon mode for background recompilation Find source files intelligently glob like to ease script maintenance Support for global object cache to avoid unnecessary recompilations Support for unit tests run on programs at the end of buildsWaf supports A C C preprocessor for computing dependencies Fortran is supported with automated detection of Module dependencies Support for OCaml and hybrid programs and for GNOME programs Support for the D programming language both gdc and dmd are supported Support for C Java Python project Provides various tools for processing DocBook man pages intltool msgfmtWaf is written in Python Rather than being intended to be installed as a prerequisite piece of system software as with build systems such as GNU make it is distributed as a script including an embedded archive file intended to be run to unpack the Waf sources within a project s own source tree License editWaf s source code is released under the terms of the New BSD License However Nagy s intent is that Waf is to be included as part of an individual software project rather than installed as a system wide build system To that effect the documentation which is shipped as part of the Waf release is under the CC BY NC ND license which forbids both modification and commercial redistribution this change was made in order to obstruct the Debian project from including Waf as a system wide software package 4 While Debian initially simply refrained from including documentation a direct request from Nagy made Debian remove Waf and discourage its use as a build system 5 Debian developer Ian Jackson opined that using Waf as distributed in a build system for software under the terms of the GNU General Public License GNU GPL would be in breach of the terms of that license as the unpacking script produces an obfuscated copy of its original source code rather than the preferred form for modification as is required by the GPL s wording on build systems 6 See also edit nbsp Free and open source software portalList of build automation software SCons Buildbot BuildoutReferences edit Waf Analysis Summary Ohloh Retrieved 2010 12 19 Riddell Jonathan 11 September 2005 KDE to Migrate to bksys SCons Build System KDE Dot News Retrieved 9 May 2012 Unrau Troy 22 February 2007 The Road to KDE 4 CMake a New Build System for KDE KDE Dot News Retrieved 9 May 2012 Nagy Thomas 2 Oct 2009 Configuration environment in custom targets Waf users mailing list Falavigna Luca 27 Feb 2010 Intent to remove waf from Debian Debian devel mailing list Debian Jackson Ian 7 Feb 2012 Doesn t contain source for waf binary code Debian devel mailing list Debian External links editOfficial website Retrieved from https en wikipedia org w index php title Waf build system amp oldid 1177964055, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.