fix compiler output on error.

Replacing the call to shell with a call to system allows the compiler output to be printed at all times.
All exception handling code is removed as system does not throw on an error code return.

Side effect: compilation of other modules continues if one fails.