Python make systems Python make systems python python

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.


When I used waf about 1.5-2 years ago, it had really sparse and poor documentation which greatly limited its utility. I haven't used waf in a while, though, so maybe that situation has changed.