I was curious to see how I could integrate noweb and Scons. You can download my little Sconstruct for this, Sconstruct.example. It defines two builders. NoWeave is used to produce TeX or LaTeX documents, while NoTangle extracts the non-document artefacts, i.e. programs, config files, scripts … It also includes productions for generating a sample program about Ackermann function: ackdoc = env.NoWeave('ack.tex', 'ack.nw') ackcode = env.NoTangle('ack.py', 'ack.nw') acktest = env.NoTangle('ackTest.py', 'ack.nw') The noweb source is ack.