update submodules for GHC.HetMet.GArrow -> Control.GArrow renaming
[ghc-hetmet.git] / distrib / configure.ac.in
index ec2ea33..7df0f3b 100644 (file)
@@ -6,6 +6,7 @@ dnl
 
 AC_INIT([The Glorious Glasgow Haskell Compilation System], [@ProjectVersion@], [glasgow-haskell-bugs@haskell.org], [ghc])
 
 
 AC_INIT([The Glorious Glasgow Haskell Compilation System], [@ProjectVersion@], [glasgow-haskell-bugs@haskell.org], [ghc])
 
+FP_BINDIST_GHC_PWD
 FP_FIND_ROOT
 
 BootingFromHc=NO
 FP_FIND_ROOT
 
 BootingFromHc=NO
@@ -15,20 +16,10 @@ dnl--------------------------------------------------------------------
 dnl * Deal with arguments telling us gmp is somewhere odd
 dnl--------------------------------------------------------------------
 
 dnl * Deal with arguments telling us gmp is somewhere odd
 dnl--------------------------------------------------------------------
 
-FP_ARG_GMP
+FP_GMP
 
 
-GMP_INCLUDE_DIRS=
-GMP_LIB_DIRS=
-if test "x$gmp_libraries" != "xNONE"; then
-  LDFLAGS="-L$gmp_libraries $LDFLAGS"
-  GMP_LIB_DIRS=$gmp_libraries
-fi
-if test "x$gmp_includes" != "xNONE"; then
-  CPPFLAGS="-I$gmp_includes $CPPFLAGS"
-  GMP_INCLUDE_DIRS=$gmp_includes
-fi
-AC_SUBST(GMP_INCLUDE_DIRS)
-AC_SUBST(GMP_LIB_DIRS)
+bootstrap_target=`ghc/stage2/build/tmp/ghc-stage2 +RTS --info | grep '^ ,("Target platform"' | sed -e 's/.*, "//' -e 's/")//' | tr -d '\r'`
+FPTOOLS_SET_PLATFORM_VARS
 
 #
 dnl ** Check Perl installation **
 
 #
 dnl ** Check Perl installation **
@@ -52,19 +43,19 @@ dnl ** how to do symlinks **
 AC_PROG_LN_S()
 
 #
 AC_PROG_LN_S()
 
 #
-dnl ** how to invoke `ar' and `ranlib'
-#
-FP_PROG_AR_NEEDS_RANLIB
-
-#
 dnl ** Find the path to sed **
 #
 dnl ** Find the path to sed **
 #
-AC_PATH_PROG(SedCmd,sed)
+AC_PATH_PROG(SedCmd,gsed sed,sed)
 
 #
 
 #
-dnl ** How to invoke cpp directly **
+dnl ** How to invoke gcc/cpp **
 #
 #
-FP_HAVE_GCC
+FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc])
+export CC
+WhatGccIsCalled="$CC"
+AC_SUBST(WhatGccIsCalled)
+
+FP_GCC_VERSION
 AC_PROG_CPP
 
 #
 AC_PROG_CPP
 
 #
@@ -72,15 +63,53 @@ dnl ** Check gcc version and flags we need to pass it **
 #
 FP_GCC_EXTRA_FLAGS
 
 #
 FP_GCC_EXTRA_FLAGS
 
-CONF_CC_OPTS="@CONF_CC_OPTS@"
-CONF_LD_OPTS="@CONF_LD_OPTS@"
-AC_SUBST(CONF_CC_OPTS)
-AC_SUBST(CONF_LD_OPTS)
+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_GCC_LINKER_OPTS_STAGE2],[CONF_LD_LINKER_OPTS_STAGE2],[CONF_CPP_OPTS_STAGE2])
+
+AC_SUBST(CONF_CC_OPTS_STAGE0)
+AC_SUBST(CONF_CC_OPTS_STAGE1)
+AC_SUBST(CONF_CC_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)
 
 #
 
 #
-AC_CONFIG_FILES(extra-gcc-opts mk/config.mk mk/install.mk)
+dnl ** how to invoke `ar' and `ranlib'
+#
+FP_PROG_AR_NEEDS_RANLIB
+
+#
+AC_CONFIG_FILES(settings mk/config.mk mk/install.mk)
 AC_OUTPUT
 
 AC_OUTPUT
 
+# We get caught by
+#     http://savannah.gnu.org/bugs/index.php?1516
+#     $(eval ...) inside conditionals causes errors
+# with make 3.80, so warn the user if it looks like they're about to
+# try to use it.
+# We would use "grep -q" here, but Solaris's grep doesn't support it.
+checkMake380() {
+    if $1 --version 2>&1 | head -1 | grep 'GNU Make 3\.80' > /dev/null
+    then
+        echo
+        echo "WARNING: It looks like \"$1\" is GNU make 3.80."
+        echo "This version cannot be used to build GHC."
+        echo "Please use GNU make >= 3.81."
+    fi
+}
+
+checkMake380 make
+checkMake380 gmake
+
 echo "****************************************************"
 echo "Configuration done, ready to 'make install'"
 echo "(see README and INSTALL files for more info.)"
 echo "****************************************************"
 echo "Configuration done, ready to 'make install'"
 echo "(see README and INSTALL files for more info.)"