title: How to delete temporary files in scons build without causing them to be rebuilt
body: <p>In the build I'm trying to do, there're 2 steps to generate the output</p>
  
  <p>a.bin -> a.c   (convert any file into a C file with an array storing the contents)
  a.c -> a.o</p>
  
  <p>a.c could be massive and should be deleted after a.o is generated.</p>
  
  <p>Here's what I tried so far</p>
  
  <ol>
  <li>Use separate builders for each step. For the last step, use target.AddPostAction(Delete("a.c"))</li>
  </ol>
  
  <p>This does delete the temp file, but when you build again, a.c gets regenerated because SCons builds all targets by default unlike make</p>
  
  <p>Is there some command to tell SCons to not build a target unless it's needed by another target? It would be the opposite of AlwaysBuild()</p>
  
  <ol start="2">
  <li>Create a custom builder that does both steps (target=a.o, source=a.json), so that SCons doesn't even know about a.c.</li>
  </ol>
  
  <p>This required me to generate my own command for compiling C, which works for GCC, but not the Microsoft compiler. Is there any way to get the SCons generated C compile command or have SCons execute that command immediately?</p>