X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=configure.ac;h=937d87175f411ce8288da9d412be5669c546767b;hp=5e887772c0f829acc1689e904f37f703fbf9d01c;hb=cb8fb4dc68b503474bd65c0a669d9018a3ce96fe;hpb=b6fff39114fee90b806ed2e29cc8f5d9728d85a8 diff --git a/configure.ac b/configure.ac index 5e88777..937d871 100644 --- a/configure.ac +++ b/configure.ac @@ -89,6 +89,11 @@ AC_ARG_WITH([ghc], fi WithGhc="$GHC"]) + +dnl ** Tell the make system which OS we are using +dnl $OSTYPE is set by the operating system to "msys" or "cygwin" or something +AC_SUBST(OSTYPE) + dnl ** Booting from .hc files? dnl -------------------------------------------------------------- AC_ARG_ENABLE(hc-boot, @@ -125,12 +130,7 @@ if test "$WithGhc" != ""; then AC_SUBST(GhcPatchLevel)dnl GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'` GhcCanonVersion="$GhcMajVersion$GhcMinVersion2" - FP_COMPARE_VERSIONS($GhcVersion,[-ge],[6.10.2], - [ghc_ge_6102=YES], [ghc_ge_6102=NO]) - if test $GhcCanonVersion -ge 611; then ghc_ge_611=YES; else ghc_ge_611=NO; fi if test $GhcCanonVersion -ge 613; then ghc_ge_613=YES; else ghc_ge_613=NO; fi - AC_SUBST(ghc_ge_6102)dnl - AC_SUBST(ghc_ge_611)dnl AC_SUBST(ghc_ge_613)dnl fi @@ -139,8 +139,8 @@ 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.10], - [AC_MSG_ERROR([GHC version 6.10 or later is required to compile GHC.])])dnl + FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.12], + [AC_MSG_ERROR([GHC version 6.12 or later is required to compile GHC.])])dnl if test `expr $GhcMinVersion % 2` = "1"; then if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then @@ -287,6 +287,7 @@ x86_64-apple-darwin) ;; esac +# Sync this with cTargetArch in compiler/ghc.mk checkArch() { case $1 in alpha|arm|hppa|hppa1_1|i386|ia64|m68k|mips|mipseb|mipsel|powerpc|powerpc64|rs6000|s390|sparc|sparc64|vax|x86_64) @@ -350,6 +351,16 @@ checkArch "$TargetArch" checkVendor "$TargetVendor" checkOS "$TargetOS" +# Verify that the installed (bootstrap) GHC is capable of generating +# code for the requested build platform. +if test "$build" != "$bootstrap_target" +then + echo "This GHC (${WithGhc}) does not generate code for the build platform" + echo " GHC target platform : $bootstrap_target" + echo " Desired build platform : $BuildPlatform" + exit 1 +fi + AC_SUBST(BuildPlatform) AC_SUBST(HostPlatform) AC_SUBST(TargetPlatform) @@ -381,42 +392,47 @@ AC_ARG_WITH(hc, ) AC_SUBST(WithHc) -AC_PATH_PROGS(NHC,nhc nhc98) -AC_PATH_PROG(HBC,hbc) - # This uses GHC, so put it after the "GHC is required" check above: FP_INTREE_GHC_PWD FP_FIND_ROOT if test "$HostOS" = "mingw32" then + test -d inplace || mkdir inplace + CC="$hardtop/inplace/mingw/bin/gcc.exe" LD="$hardtop/inplace/mingw/bin/ld.exe" NM="$hardtop/inplace/mingw/bin/nm.exe" fp_prog_ar_raw="$hardtop/inplace/mingw/bin/ar.exe" + + # NB. If you update the tarbballs to a new version of gcc, don't + # forget to tweak the paths in driver/gcc/gcc.c. if ! test -d inplace/mingw || test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.lzma || test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.lzma || test inplace/mingw -ot ghc-tarballs/mingw/gcc-c++*.tar.lzma || + test inplace/mingw -ot ghc-tarballs/mingw/libgcc*.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/libgmp*.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/libmpc*.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/libmpfr*.tar.gz || + test inplace/mingw -ot ghc-tarballs/mingw/libstdc*.tar.lzma || test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dev.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/mingwrt*-dll.tar.gz || test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.lzma then AC_MSG_NOTICE([Making in-tree mingw tree]) rm -rf inplace/mingw - test -d inplace || mkdir inplace mkdir inplace/mingw ( cd inplace/mingw && tar --lzma -xf ../../ghc-tarballs/mingw/binutils*.tar.lzma && tar --lzma -xf ../../ghc-tarballs/mingw/gcc-core*.tar.lzma && tar --lzma -xf ../../ghc-tarballs/mingw/gcc-c++*.tar.lzma && + tar --lzma -xf ../../ghc-tarballs/mingw/libgcc*.tar.lzma && tar --lzma -xf ../../ghc-tarballs/mingw/libgmp*.tar.lzma && tar --lzma -xf ../../ghc-tarballs/mingw/libmpc*.tar.lzma && tar --lzma -xf ../../ghc-tarballs/mingw/libmpfr*.tar.lzma && + tar --lzma -xf ../../ghc-tarballs/mingw/libstdc*.tar.lzma && tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dev.tar.gz && tar -z -xf ../../ghc-tarballs/mingw/mingwrt*-dll.tar.gz && tar --lzma -xf ../../ghc-tarballs/mingw/w32api*.tar.lzma && @@ -532,11 +548,11 @@ dnl If gcc, make sure it's at least 2.1 dnl FP_HAVE_GCC -FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS]) -FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_LD_OPTS_STAGE0]) -FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_LD_OPTS_STAGE1]) +FPTOOLS_SET_C_LD_FLAGS([target],[CFLAGS],[LDFLAGS],[IGNORE_LINKER_LD_FLAGS],[CPPFLAGS]) +FPTOOLS_SET_C_LD_FLAGS([build],[CONF_CC_OPTS_STAGE0],[CONF_GCC_LINKER_OPTS_STAGE0],[CONF_LD_LINKER_OPTS_STAGE0],[CONF_CPP_OPTS_STAGE0]) +FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE1],[CONF_GCC_LINKER_OPTS_STAGE1],[CONF_LD_LINKER_OPTS_STAGE1],[CONF_CPP_OPTS_STAGE1]) # Stage 3 won't be supported by cross-compilation -FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_LD_OPTS_STAGE2]) +FPTOOLS_SET_C_LD_FLAGS([target],[CONF_CC_OPTS_STAGE2],[CONF_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2]) FP_GCC_EXTRA_FLAGS @@ -546,9 +562,15 @@ AC_PROG_CPP AC_SUBST(CONF_CC_OPTS_STAGE0) AC_SUBST(CONF_CC_OPTS_STAGE1) AC_SUBST(CONF_CC_OPTS_STAGE2) -AC_SUBST(CONF_LD_OPTS_STAGE0) -AC_SUBST(CONF_LD_OPTS_STAGE1) -AC_SUBST(CONF_LD_OPTS_STAGE2) +AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE0) +AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE1) +AC_SUBST(CONF_GCC_LINKER_OPTS_STAGE2) +AC_SUBST(CONF_LD_LINKER_OPTS_STAGE0) +AC_SUBST(CONF_LD_LINKER_OPTS_STAGE1) +AC_SUBST(CONF_LD_LINKER_OPTS_STAGE2) +AC_SUBST(CONF_CPP_OPTS_STAGE0) +AC_SUBST(CONF_CPP_OPTS_STAGE1) +AC_SUBST(CONF_CPP_OPTS_STAGE2) dnl ** figure out how to do context diffs FP_PROG_CONTEXT_DIFF