SCons allows target files to be built completely separately from the source files by "linking" a build directory to an underlying source directory:
env.Link('build', 'src') SConscript('build/SConscript')
SCons will copy (or hard link) necessary files (including the
SConscript file) into the build directory hierarchy. This allows the
source directory to remain uncluttered by derived files.