# -----------------------------------------------------------------------------
# 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"
# This is horrible. We ought to be able to omit the entire directory
# from mkDependHS.
SRC_MKDEPENDHS_OPTS += \
+ -optdep--exclude-module=Compat.RawSystem \
-optdep--exclude-module=Compat.Directory \
-optdep--exclude-module=Distribution.Compat.ReadP \
- -optdep--exclude-module=Distribution.Package \
+ -optdep--exclude-module=Distribution.Extension \
+ -optdep--exclude-module=Distribution.GetOpt \
-optdep--exclude-module=Distribution.InstalledPackageInfo \
- -optdep--exclude-module=Distribution.Package \
-optdep--exclude-module=Distribution.License \
- -optdep--exclude-module=Distribution.Version
+ -optdep--exclude-module=Distribution.Package \
+ -optdep--exclude-module=Distribution.ParseUtils \
+ -optdep--exclude-module=Distribution.Setup \
+ -optdep--exclude-module=Distribution.Version \
+ -optdep--exclude-module=System.Directory.Internals
# -----------------------------------------------------------------------------=
# Create the Version.hs file
@$(RM) -f $(VERSION_HS)
@echo "Creating $(VERSION_HS) ... "
@echo "module Version where" >>$(VERSION_HS)
+ @echo "version, targetOS, targetARCH :: String" >>$(VERSION_HS)
@echo "version = \"$(ProjectVersion)\"" >> $(VERSION_HS)
@echo "targetOS = \"$(TargetOS_CPP)\"" >> $(VERSION_HS)
@echo "targetARCH = \"$(TargetArch_CPP)\"" >> $(VERSION_HS)
+DIST_CLEAN_FILES += $(VERSION_HS)
+
# -----------------------------------------------------------------------------
# ghc-pkg script