ghc --make -odir x -hidir x chooses strange location for x

Claus Reinke
Wed, 23 Oct 2002 12:44:00 +0100

I'm a great fan of ghc --make, but there seem to be a few 
features that could be improved:

1) -odir x (same for -hidir) seems to put all object files into a
directory x relative to the call to ghc..

Well, I wanted .o files out of the way, but not that far out
of the way! Not only do all .o files for the source file hierarchy
end up in one directory, that directory has no relation to the
source file location. So, even if I don't get name conflicts in
that one directory, as soon as I reuse part of my source 
directories for a second project, that'll end up compiling its
own copies of the .o files. Unless I put all .o files for all my
projects in the same directory..

I'd have expected -odir/-hidir to put files in directories relative
to the source directories. Is that an unreasonable expectation?

2) with static options not accepted in source file pragmas, I
often end up compiling everything with the superset of options.

Shouldn't it be possible to fork a new copy of ghc with new 
static options for parts of a ghc --make run?

3) shouldn't there be a way of telling ghc --make about ways
to generate the .hs/.lhs files it is looking for (aka suffix rules)?

The standard examples are happy, cpp, drift, ..

Just a few suggestions,

Haskell Communities and Activities Report (November 2002 edition)
All contributions are due in by the end of October!