@echo "cProjectPatchLevel = \"$(ProjectPatchLevel)\"" >> $(CONFIG_HS)
@echo "cBooterVersion = \"$(GhcVersion)\"" >> $(CONFIG_HS)
@echo "cHscIfaceFileVersion = \"$(HscIfaceFileVersion)\"" >> $(CONFIG_HS)
- @echo "cHOSTPLATFORM = \"$(HOSTPLATFORM)\"" >> $(CONFIG_HS)
@echo "cTARGETPLATFORM = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS)
@echo "cTARGETOS = \"$(TargetOS_CPP)\"" >> $(CONFIG_HS)
@echo "cTARGETARCH = \"$(TargetArch_CPP)\"" >> $(CONFIG_HS)
endif # bootstrapped with interpreter
+ifeq "$(bootstrapped)" "YES"
+SRC_HC_OPTS += -package Cabal
+endif
+
# -----------------------------------------------
# mkdependC stuff
#
#-----------------------------------------------------------------------------
# Linking
-# Include libghccompat in stage1. In stage2 onwards, all these libraries
-# will be available from the main libraries.
+# Include libghccompat in stage1 only. In stage2 onwards, all these
+# libraries will be available from the main libraries.
ifeq "$(stage)" "1"
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
-SRC_MKDEPENDHS_OPTS += -optdep--exclude-module=Compat.RawSystem
+
+ifeq "$(Windows)" "YES"
+# not very nice, but required for -lghccompat on Windows
+SRC_LD_OPTS += -lshell32
+endif
+
+# 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.Extension \
+ -optdep--exclude-module=Distribution.GetOpt \
+ -optdep--exclude-module=Distribution.InstalledPackageInfo \
+ -optdep--exclude-module=Distribution.License \
+ -optdep--exclude-module=Distribution.Package \
+ -optdep--exclude-module=Distribution.ParseUtils \
+ -optdep--exclude-module=Distribution.Setup \
+ -optdep--exclude-module=Distribution.Version \
+ -optdep--exclude-module=System.FilePath
endif
-SRC_LD_OPTS += -no-link-chk
+SRC_LD_OPTS += -no-link-chk
# -----------------------------------------------------------------------------
# create ghc-inplace, a convenient way to run ghc from the build tree...