Specifying `-odir` in OPTIONS_GHC in --make mode does nothing but in -c does something
{-# OPTIONS_GHC -odir=o #-}
module O where
With --make mode ghc O will produce O.o, with -c the output will end up in o/O.o.
I don't think you should be allowed to specify -odir/-hidir/-hiedir/-stubdir in OPTIONS_GHC pragmas like you can't specify -package flags.