# This module shouldn't be compiled itself, only #included into other files
EXCLUDED_SRCS += System/FilePath/Internal.hs
-ifeq "$(ghc_ge_603)" "YES"
ifneq "$(ghc_ge_607)" "YES"
# GHC 6.3+ has Cabal, but we're replacing it:
SRC_HC_OPTS += -ignore-package Cabal
# only GHC 6.3+ has -ignore-package
SRC_HC_OPTS += -ignore-package filepath
endif
-endif
ifeq "$(ghc_ge_607)" "YES"
SRC_HC_OPTS += -package directory
SRC_LD_OPTS += -L$(GHC_COMPAT_DIR) -lghccompat
# Do *not* use the installed Cabal:
-ifeq "$(ghc_ge_603)" "YES"
SRC_HC_OPTS += -ignore-package Cabal
-endif
ifeq "$(ghc_ge_607)" "YES"
SRC_HC_OPTS += -package directory
SRC_HC_OPTS += -package containers
endif
-ifeq "$(ghc_ge_603)" "NO"
-SRC_HC_OPTS += -package unix
-endif
-
# And similarly for when booting from .hc files:
HC_BOOT_LD_OPTS += -L$(GHC_COMPAT_DIR)
HC_BOOT_LIBS += -lghccompat
$(MKDIRHIER) stage$(stage)/$$i; \
done
-ifeq "$(stage) $(ghc_ge_603)" "1 YES"
+ifeq "$(stage)" "1"
UsingHsBoot = YES
else
ifneq "$(findstring $(stage), 2 3)" ""
SRC_HC_OPTS += -Wall -fno-warn-name-shadowing
# Turn off orphan warnings, but only if the flag exists (i.e. not if we
# are building stage 1 and using GHC < 6.3).
-ifneq "$(stage) $(ghc_ge_603)" "1 NO"
+ifneq "$(stage)" "1 NO"
SRC_HC_OPTS += -fno-warn-orphans
endif
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)
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 += -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
# to inline certain key external functions, so we instruct GHC not to
AC_SUBST(GhcPatchLevel)dnl
GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'`
GhcCanonVersion="$GhcMajVersion$GhcMinVersion2"
- if test $GhcCanonVersion -ge 601; then ghc_ge_601=YES; else ghc_ge_601=NO; fi
- if test $GhcCanonVersion -ge 602; then ghc_ge_602=YES; else ghc_ge_602=NO; fi
- if test $GhcCanonVersion -ge 603; then ghc_ge_603=YES; else ghc_ge_603=NO; fi
if test $GhcCanonVersion -ge 605; then ghc_ge_605=YES; else ghc_ge_605=NO; fi
if test $GhcCanonVersion -ge 607; then ghc_ge_607=YES; else ghc_ge_607=NO; fi
- AC_SUBST(ghc_ge_601)dnl
- AC_SUBST(ghc_ge_602)dnl
- AC_SUBST(ghc_ge_603)dnl
AC_SUBST(ghc_ge_605)dnl
AC_SUBST(ghc_ge_607)dnl
fi
fi;
dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
-if test "$BootingFromHc" = "NO" -a "$WithGhc" = "" -a -d "$srcdir/compiler"; then
-AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
+if test "$BootingFromHc" = "NO" -a -d "$srcdir/compiler"; then
+ if test "$WithGhc" = ""; then
+ AC_MSG_ERROR([GHC is required unless bootstrapping from .hc files.])
+ fi
+ FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.4],
+ [AC_MSG_ERROR([GHC version 6.4 or later is required to compile GHC.])])dnl
fi;
# This uses GHC, so put it after the "GHC is required" check above:
GhcMajVersion = @GhcMajVersion@
GhcMinVersion = @GhcMinVersion@
-ghc_ge_601 = YES
-ghc_ge_602 = YES
-ghc_ge_603 = YES
ghc_ge_605 = YES
ghc_ge_607 = YES
GhcMinVersion = @GhcMinVersion@
# Some useful GHC version predicates:
-ghc_ge_601 = @ghc_ge_601@
-ghc_ge_602 = @ghc_ge_602@
-ghc_ge_603 = @ghc_ge_603@
ghc_ge_605 = @ghc_ge_605@
ghc_ge_607 = @ghc_ge_607@
endif