HS_OBJS = $(patsubst %, $(odir)/%, $(addsuffix .$(way_)o,$(basename $(HS_SRCS))))
C_OBJS = $(patsubst %, $(odir)/%, $(addsuffix .$(way_)o,$(basename $(C_SRCS))))
-# Our standard cleaning rules don't know that we're doing our output into $(odir), so
-# we have to augment CLEAN_FILES appropriateliy.
+# Our standard cleaning rules don't know that we're doing our output
+# into $(odir), so we have to augment CLEAN_FILES appropriateliy.
-CLEAN_FILES += $(odir)/*/*.hi
+CLEAN_FILES += $(odir)/*/*.hi $(odir)/*/*.hi-boot $(odir)/*/*.o-boot
ifeq "$(UsingHsBoot)" "YES"
CLEAN_FILES += $(odir)/*/*.hi-boot $(odir)/*/*.o-boot
ALL_DIRS = \
utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \
specialise simplCore stranal stgSyn simplStg codeGen main \
- profiling parser cprAnalysis compMan ndpFlatten iface cmm
+ profiling parser cprAnalysis ndpFlatten iface cmm
# Make sure we include Config.hs even if it doesn't exist yet...
ALL_SRCS += $(CONFIG_HS)
PKG_DEPENDS += Cabal
endif
+ifeq "$(ghc_ge_603)" "YES"
+# Ignore lang, to avoid potential clash with the Generics module if
+# lang happens to be a dependency of some exposed package in the local
+# GHC installation (eg. wxHaskell did this around 6.4).
+SRC_HC_OPTS += -ignore-package lang
+endif
+
SRC_CC_OPTS += -Iparser -I. -O
SRC_HC_OPTS += -recomp $(GhcHcOpts) $(GhcStage$(stage)HcOpts)
SRC_HC_OPTS += -H16M
# It's an expensive module to recompile!
prelude/PrimOp_HC_OPTS = -H80m
-# because the NCG can't handle the 64-bit math in here
-prelude/PrelRules_HC_OPTS = -fvia-C
main/ParsePkgConf_HC_OPTS += -fno-warn-incomplete-patterns
+parser/Parser_HC_OPTS += -fno-warn-incomplete-patterns
+
+ifeq "$(ghc_ge_603)" "NO"
# Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?)
# primops on all platforms.
-parser/Parser_HC_OPTS += -fno-warn-incomplete-patterns -fvia-C
+parser/Parser_HC_OPTS += -fvia-C
+# because the NCG can't handle the 64-bit math in here
+prelude/PrelRules_HC_OPTS += -fvia-C
+# ByteCodeItbls uses primops that the NCG doesn't support.
+ghci/ByteCodeItbls_HC_OPTS += -fvia-C
+ghci/ByteCodeLink_HC_OPTS += -fvia-C -monly-3-regs
+endif
# Careful optimisation of the parser: we don't want to throw everything
# at it, because that takes too long and doesn't buy much, but we do want
utils/Binary_HC_OPTS = -funbox-strict-fields
endif
-# ByteCodeItbls uses primops that the NCG doesn't support yet.
-ghci/ByteCodeItbls_HC_OPTS += -fvia-C
-ghci/ByteCodeLink_HC_OPTS += -fvia-C -monly-3-regs
-
# BinIface and Binary take ages to both compile and run if you don's use -O
main/BinIface_HC_OPTS += -O
utils/Binary_HC_OPTS += -O
# DriverMkDepend), causing some of them to be commoned up. We have a fix for
# this in 5.00+, but earlier versions of the compiler will need CSE turned off.
# To be on the safe side, we disable CSE in *all* modules with top-level IORefs.
-compMan/CompManager_HC_OPTS = -fno-cse
ghci/InteractiveUI_HC_OPTS = -fno-cse
main/CmdLineOpts_HC_OPTS = -fno-cse
main/DriverMkDepend_HC_OPTS = -fno-cse
# 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=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.Directory.Internals
+include $(GHC_LIB_COMPAT_DIR)/compat.mk
endif
SRC_LD_OPTS += -no-link-chk
# override default definition of HS_IFACES so we can add $(odir)
HS_IFACES = $(addsuffix .$(way_)hi,$(basename $(HS_OBJS)))
+
+# Haddock can't handle recursive modules currently, so we disable it for now.
+NO_HADDOCK_DOCS = YES
endif
#-----------------------------------------------------------------------------