Wasn't waf the insane thing that didn't want to keep any backwards compatibility to recreate its configure stuff from old sources because it's ok to stick with an old version? (And hence it got removed from Debian, for instance?) So you need to ship it with your sources?
Also wasn't it the insane thing which actually shipped a compressed tarball with Python libs in sources that use it? (The "waf" binary alongside "configure".)
I know Debian had to patch a bunch of packages because waf was stupid and the result didn't build on hppa. You couldn't just regenerate the output because you needed the right version of waf to do that, i.e. the shipped one. So that needed patching. And you couldn't just apply the same patch neither because the build system is in a compressed blob.