SCons

Examples
C++ build: MyProgram=env.Program(        'myprogram.cpp',         CPPPATH = ['/path/to/includes1', '/path/to/includes2'],         LIBPATH = ['/path/to/libs1', '/path/to/libs2'],         LIBS    = ['library1', 'm'] # i.e. -llibrary1 -lm         ) Defining an environment used for compiling multiple targets: env = Environment(CPPPATH = '/path/to/includes', LIBPATH = '/path/to/libs/') obj = env.Object('source1.cpp') # generates 'source.o' env.Program('source2' ['source2.cpp', obj]) Importing global environment import os BOOSTPATH = os.environ['BOOST'] Making a new Builder, i.e. building with some external tool: XMLCONVERTER = '/path/to/program' env = Environment MeshFromXmlBuilder = Builder(action = '%s $SOURCE $TARGET' % XMLCONVERTER) env.Append(BUILDERS = {'meshFromXml' : meshFromXmlBuilder}) mesh = env.meshFromXml('object.mesh', 'object.xml') Adding custom dependencies: env.Depends(target, ['sourcefile1', 'sourcefile2'])
 * 1) compile 'source2.cpp' and link with obj
 * 1) define new Builder
 * 1) build 'object.mesh' from 'object.xml'