+#
+# Profiling options
+WAY_p_HC_OPTS += -prof -GPrelude
+WAY_mr_HC_OPTS += -prof -GPrelude
+
+#
+# Object and interface files have suffixes tagged with their ways
+#
+ifneq "$(way)" ""
+SRC_HC_OPTS += -hisuf $(way_)hi
+endif
+
+# per-module flags
+
+ghc/PackedString_HC_OPTS += -monly-3-regs
+required/Directory_HC_OPTS += -monly-3-regs
+concurrent/Parallel_HC_OPTS += -fglasgow-exts
+required/Time_HC_OPTS += -monly-3-regs
+
+#-----------------------------------------------------------------------------
+# Dependency generation
+
+SRC_MKDEPENDHS_OPTS += -ighc:required:glaExts:concurrent -I$(GHC_INCLUDE_DIR)
+
+#-----------------------------------------------------------------------------
+# Rules
+
+# In preparation for building the various libHS* libraries,
+# we create the interface files needed to boot their build.
+#
+# Note that the creation of IOBase, Main and GHC interface
+# files for umpteen ways is strictly not necessary, they're
+# all the same, but having the redundant files prevents us
+# from having to treat the said interface files specially
+# when creating the dependencies.
+#
+# Note: if you change the *.hi-boot files, this will not be
+# picked up by the Makefile, you'll have to `make hi-boot'
+#
+# Note2: hsc will only read from ghc/GHC.hi regardless of
+# which `way' you're compiling, so the copies of the GHC
+# interface file for the different ways are only there
+# to pacify `make'
+
+HIBOOTS=GHC Main IOBase