Python make systems
One quirk of waf is that it's supposed to be copied into the source tree of the program. Scons is a lot more like make in that it's installed once on the system, and then you have essentially just a data file (in the form of a python program) in the source tree.
As a consequence, Scons is packaged on Ubuntu/Debian and waf is not.
It's possible but a bit hard in Scons to do metaprogramming that manipulates the dependency graph or adds new concepts for derivation. Apparently waf is better at that.
I have used Scons happily many times; for my next compiled project I will probably at least try waf.
You can read about Samba's experience with waf. They report that going from autoconf to Waf got the rpaths set correctly and shrunk the binaries by linking the necessary object files exactly once per program.
Here is the status of 4 of the software build systems for Python 3, as of 2015-05-31.
- waf:
- (+) The latest version is 1.8.10, dated 2015-05-24.
- (+) Supports Python 2.5 to 3.4.
- https://waf.io/book/
- zc.buildout:
- (+) Latest release: 2.3.1, dated 2014-12-16
- (+) Supports Python 2.6 to 3.4.
- https://pypi.python.org/pypi/zc.buildout
- scons:
- (-) As of 2014-09-27, scons has stalled in its port to Python 3, due to scons being a volunteer-run effort.
- http://www.scons.org/RELEASE.txt
- buildit:
- (-) Does not support Python 3.
- (-) as of 2013-11-17, version 0.81 is the latest.
- Development Status :: 3 - Alpha
- https://pypi.python.org/pypi/buildit/