Add a few more flags that conflict with -M
Improve the accuracy of computing hidir/odir/output file based on knowledge of how -outputdir works from the GHC source
Change to my new conventions
Give a better error if it fails to create a file it was expecting
If ghc-pkg changes rebuild everything
Ignore the stderr of ghc-pkg, it often says packages are broken, but it is harmless
Change the logic for build, if there is no Main file, there is no .exe
Eliminate the root field from Makefile, was never used