Could you give a detailed description of the problem you're trying to solve?
In particular I'd like to understand why the approach I suggested before won't work, i.e. specifying the name of the executable at the command line and scripting the generation of the executables.
cl prog.c -Dprog1_options -o prog1.exe
cl prog.c -Dprog2_options -o prog2.exe
cl prog.c -Dprog3_options -o prog3.exe
and in the code
// do the prog1 stuff
// do the prog2 stuff