--make is now the default (#3515), and -fno-code works with --make (#3783)
If the command line contains any Haskell source files, then we behave
as if --make had been given.
The meaning of the -c flag has changed (back): -c now selects one-shot
compilation, but stops before linking. However, to retain backwards
compatibility, -c is still allowed with --make, and means the same as
--make -no-link. The -no-link flag has been un-deprecated.
-fno-code is now allowed with --make (#3783); the fact that it was
disabled before was largely accidental, it seems. We also had some
regressions in this area: it seems that -fno-code was causing a .hc
file to be emitted in certain cases. I've tidied up the code, there
was no need for -fno-code to be a "mode" flag, as far as I can tell.
-fno-code does not emit interface files, nor does it do recompilation
checking, as suggested in #3783. This would make Haddock emit
interface files, for example, and I'm fairly sure we don't want to do
that. Compiling with -fno-code is pretty quick anyway, perhaps we can
get away without recompilation checking.