implement out of source builds
ignore the irrelevant