Build requirements for packaging SCons

Python

To build SCons you need to have Python version 2.7 or later installed, as well as its developer package named python-dev under Debian. You'll also need the setuptools, named python-setuptools.

Full builds, including all docs

However, if you want to build the docs as well, it will be more complicated. You'll need some extra packages:

You need to have the Python binding for either libxml2 or lxml installed. For rendering PDF documents, you'll need a program like fop, xep or jw available in your system-wide $PATH. Creating the EPUB output files of the UserGuide and the MAN page, both depend on the Ghostscript executable gs for creating the front cover image. fop requires Java but is easily installed via apt-get on Debian/Ubuntu. jw is available for Debian/Ubuntu as part of the docbook-utils package. You'll also need epydoc in the python-epydoc package.

Master script

In the SCons source tree you can also find the script bin/scons_dev_master.py, which can be used to setup your current environment for special development tasks. Calling it with:

python bin/scons_dev_master.py build

should automatically install the required packages, as mentioned above.

Problem: recent Debian distros

A problem exists for the Windows installer that gets created during the bootstrap.py process. Under more recent Debian distributions, e.g. Ubuntu Linux 14.04, the required "wininst.exe" files aren't included in the "python" packages anymore. That's because they are binary files without a source. But they are needed when the distutils try to create the installer, and the build stops with an error like:

error: [Errno 2] No such file or directory:
'/usr/lib/python2.7/distutils/command/wininst-6.0.exe',
/usr/lib/python2.7/distutils/command/wininst-6.0.exe not included in
the Debian packages.

Against this, you can either download a standard Python source archive from http://www.python.org and extract the "*.exe" files from its folder Lib/distutils/command, or you simply grab the following archive: