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.
Showing with 148 additions and 36 deletions