ALL_DIRS = \
utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \
specialise simplCore stranal stgSyn simplStg codeGen main \
- profiling parser cprAnalysis compMan ndpFlatten cbits iface cmm
+ profiling parser cprAnalysis compMan ndpFlatten iface cmm
# Make sure we include Config.hs even if it doesn't exist yet...
ALL_SRCS += $(CONFIG_HS)
ifeq "$(GhcWithInterpreter) $(bootstrapped)" "YES YES"
# Yes, include the interepreter, readline, and Template Haskell extensions
-SRC_HC_OPTS += -DGHCI -package template-haskell
+SRC_HC_OPTS += -DGHCI -package template-haskell -package Cabal
ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
SRC_HC_OPTS += -package unix
#-----------------------------------------------------------------------------
# Linking
-SRC_LD_OPTS += -no-link-chk
+# 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
+
+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=Data.Version \
+ -optdep--exclude-module=Distribution.Package \
+ -optdep--exclude-module=Distribution.InstalledPackageInfo \
+ -optdep--exclude-module=Distribution.Package
+endif
+
+SRC_LD_OPTS += -no-link-chk
# -----------------------------------------------------------------------------
# create ghc-inplace, a convenient way to run ghc from the build tree...