-ifeq "$(bootstrapped) $(ghc_ge_601)" "NO NO"
-SRC_HC_OPTS += -package posix
-else
-SRC_HC_OPTS += -package unix
-PKG_DEPENDS += unix
-endif
-endif
-
-# We use the Cabal package in stages 2/3 only; in stage 1 we're using
-# the libcompat library which provides the Cabal modules.
-ifneq "$(stage)" "1"
-SRC_HC_OPTS += -package Cabal
-PKG_DEPENDS += Cabal
-endif
-
-ifeq "$(ghc_ge_603)" "YES"
-# Ignore lang, to avoid potential clash with the Generics module if
-# lang happens to be a dependency of some exposed package in the local
-# GHC installation (eg. wxHaskell did this around 6.4).
-SRC_HC_OPTS += -ignore-package lang
-endif
-
-SRC_CC_OPTS += -Iparser -I. -O
-SRC_HC_OPTS += -recomp $(GhcHcOpts) $(GhcStage$(stage)HcOpts)
-SRC_HC_OPTS += -H16M
-
-ifeq "$(BootingFromHc)" "YES"
-SRC_CC_OPTS += -D__GLASGOW_HASKELL__=$(ProjectVersionInt)
-endif
-
-# Special flags for particular modules
-# The standard suffix rule for compiling a Haskell file
-# adds these flags to the command line
-
-# There used to be a -no-recomp flag on PrimOp, but why?
-# It's an expensive module to recompile!
-prelude/PrimOp_HC_OPTS = -H80m
-
-
-main/ParsePkgConf_HC_OPTS += -fno-warn-incomplete-patterns
-parser/Parser_HC_OPTS += -fno-warn-incomplete-patterns
-
-ifeq "$(ghc_ge_603)" "NO"
-# Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?)
-# primops on all platforms.
-parser/Parser_HC_OPTS += -fvia-C
-# because the NCG can't handle the 64-bit math in here
-prelude/PrelRules_HC_OPTS += -fvia-C
-# ByteCodeItbls uses primops that the NCG doesn't support.
-ghci/ByteCodeItbls_HC_OPTS += -fvia-C
-ghci/ByteCodeLink_HC_OPTS += -fvia-C -monly-3-regs
-endif
-
-# Careful optimisation of the parser: we don't want to throw everything
-# at it, because that takes too long and doesn't buy much, but we do want
-# to inline certain key external functions, so we instruct GHC not to
-# throw away inlinings as it would normally do in -Onot mode:
-parser/Parser_HC_OPTS += -Onot -fno-ignore-interface-pragmas
-
-ifeq "$(HOSTPLATFORM)" "hppa1.1-hp-hpux9"
-rename/RnMonad_HC_OPTS = -O2 -O2-for-C
-endif
-
-utils/Digraph_HC_OPTS = -fglasgow-exts
-
-basicTypes/SrcLoc_HC_OPTS = -funbox-strict-fields
-
-# We always optimise some low-level modules, otherwise performance of
-# a non-optimised compiler is severely affected.
-main/BinIface_HC_OPTS += -O
-utils/Binary_HC_OPTS += -O -funbox-strict-fields
-utils/FastMutInt_HC_OPTS += -O
-utils/Encoding_HC_OPTS += -O
-utils/StringBuffer_HC_OPTS += -O -funbox-strict-fields
-utils/FastString_HC_OPTS += -O -funbox-strict-fields
-
-# ---- Profiling ----
-#simplCore/Simplify_HC_OPTS = -auto-all
-#simplCore/SimplEnv_HC_OPTS = -auto-all
-#simplCore/SimplUtils_HC_OPTS = -auto-all
-
-# CSE interacts badly with top-level IORefs (reportedly in DriverState and
-# DriverMkDepend), causing some of them to be commoned up. We have a fix for
-# this in 5.00+, but earlier versions of the compiler will need CSE turned off.
-# To be on the safe side, we disable CSE in *all* modules with top-level IORefs.
-ghci/InteractiveUI_HC_OPTS = -fno-cse
-main/CmdLineOpts_HC_OPTS = -fno-cse
-main/DriverMkDepend_HC_OPTS = -fno-cse
-main/DriverPipeline_HC_OPTS = -fno-cse
-main/Finder_HC_OPTS = -fno-cse
-main/SysTools_HC_OPTS = -fno-cse
-main/StaticFlags_HC_OPTS = -fno-cse
-
-# The #include is vital for the via-C route, else the C
-# compiler doesn't realise that the stcall foreign imports are indeed
-# stdcall, and doesn't generate the Foo@8 name for them
-ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
-main/SysTools_HC_OPTS += '-\#include <windows.h>' '-\#include <process.h>'