This change updates the build code to support in-tree builds. This is easier to manage for CI builds and reduces the amount of IO operations necessary for the build process.