Prep for emitting compiled files to separate directories

* this is necessary to support an explicit source and output directory