# -----------------------------------------------------------------------------
# ghc-pkg.bin
-ghc_ge_504 = $(shell if (test $(GhcCanonVersion) -ge 504); then echo YES; else echo NO; fi)
-ghc_ge_603 = $(shell if (test $(GhcCanonVersion) -ge 603); then echo YES; else echo NO; fi)
-
SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
+# And similarly for when booting from .hc files:
+HC_BOOT_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR)
+HC_BOOT_LIBS += -lghccompat
+
+# This is required because libghccompat.a must be built with
+# $(GhcHcOpts) because it is linked to the compiler, and hence
+# we must also build with $(GhcHcOpts) here:
+SRC_HC_OPTS += $(GhcHcOpts)
ifeq "$(Windows)" "YES"
# not very nice, but required for -lghccompat on Windows
SRC_LD_OPTS += -lshell32
+HC_BOOT_LIBS += -lshell32
endif
ifeq "$(ghc_ge_504)" "NO"
-optdep--exclude-module=Distribution.ParseUtils \
-optdep--exclude-module=Distribution.Setup \
-optdep--exclude-module=Distribution.Version \
- -optdep--exclude-module=System.FilePath
+ -optdep--exclude-module=System.Directory.Internals
# -----------------------------------------------------------------------------=
# Create the Version.hs file