SCons is a software construction tool that is a superior alternative to the classic "Make" build tool that we all know and love. SCons is implemented as a Python script and set of modules, and SCons "configuration files" are actually executed as Python scripts. This gives SCons many powerful capabilities not found in other software build tools.
We make SCons available in three distinct packages, for different purposes.
- The scons package is the basic package to install SCons. You don't need any other package if you just want to try out SCons.
- The scons-local package executes as a SCons standalone, out of a local directory. It's intended to be dropped in to and shipped with packages of other software for builds with SCons but not as a required install.
- The scons-src package is the complete source tree, including everything we use to package SCons and all of the regression tests.
- Configuration files are Python scripts--use the power of a real programming language to solve build problems.
- Reliable, automatic dependency analysis built-in for C, C++ and Fortran--no more "make depend" or "make clean" to get all of the dependencies. Dependency analysis is easily extensible through user-defined dependency Scanners for other languages or file types.
- Built-in support for C, C++, D, Java, Fortran, Yacc, Lex, Qt and SWIG, and building TeX and LaTeX documents. Easily extensible through user-defined Builders for other languages or file types.
- Building from central repositories of source code and/or pre-built targets.
- Built-in support for fetching source files from SCCS, RCS, CVS, BitKeeper and Perforce.
- Built-in support for Microsoft Visual Studio .NET and past Visual Studio versions, including generation of .dsp, .dsw, .sln and .vcproj files.
- Reliable detection of build changes using MD5 signatures; optional, configurable support for traditional timestamps.
- Improved support for parallel builds--like make -j but keeps N jobs running simultaneously regardless of directory hierarchy.
- Integrated Autoconf-like support for finding #include files, libraries, functions and typedefs.
- Global view of all dependencies--no more multiple build passes or reordering targets to build everything.
- Ability to share built files in a cache to speed up multiple builds--like ccache but for any type of target file, not just C/C++ compilation.
- Designed from the ground up for cross-platform builds, and known to work on Linux, other POSIX systems (including AIX, *BSD systems, HP/UX, IRIX and Solaris), Windows NT, Mac OS X, and OS/2.
I am used to many languages, but Python just sucks for a build tool. as a developer knowing C and c++ well enough to do what I need to do, getting into python to configure stuff is just bad. I rather use Qt or just plain makefiles. I downloaded a project using scons, but there is no way to get that compiled. it started of that zlib.h wasn't found even it was available in /usr/include
Documentation is seriously deficient and disorganized, and scons runs much slower than make on our systems. If I had control over the project's SCM implementation, I would run away from scons.