or file types. Unlike the GNU Compiler Collection's (GCC) built-in dependency analysis, it uses a regular expression scan for included source files. Built-in support for C, C++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt and SWIG, as well as TeX and LaTeX documents. SCons can also handle other languages or file types through user-defined builders. Building from central repositories of source code and pre-built targets. Built-in ability to use Microsoft Visual Studio, including the generation of , , and files. Detection of file content changes using MD5 signatures; optional, configurable ability to use traditional timestamps. Ability to do parallel builds, maintaining a specified number of jobs running simultaneously regardless of directory hierarchy. Integrated Autoconf-like support for finding #include files, libraries, functions and typedefs. Global view of all dependencies, so multiple build passes or reordering targets is not required. 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 POSIX systems (including Linux, IBM AIX and OS/2, *BSD Unices, HP-UX, SGI IRIX, Solaris, illumos), MS Windows NT, Apple OS X. Examples The following example is a very simple SConstruct file that compiles the C program file hello-world.c using the default platform compiler: Program("hello-world.c") The following is a more complex example that creates an environment used to build the program hello: env = Environment() env.Append(CPPFLAGS=["-Wall", "-g"]) env.Program("hello", ["hello.c", "main.c"]) See also Buildout CMake qmake Qbs (build tool) Premake GNU build system List of build automation software Waf References External links Articles with example Python (programming language) code Build automation Compiling tools Free software programmed in Python Software using the MIT license