Why SCons Duplicates Source Files in a Build Directory

SCons duplicates source files in build directories because it's the most straightforward way to guarantee a correct build regardless of include-file directory paths, and the SCons philosophy is to, by default, guarantee a correct build in all cases. Here is an example of an end case where duplicating source files in a build directory is necessary for a correct build:

XXX

      env = Environmnet()
    

XXX

      % scons
      cc -c build/hello.c -o build/hello.o
      cc -o build/hello build/hello.o