Track changes to DPH libs
[ghc-hetmet.git] / configure.ac
index 989a223..c0ca168 100644 (file)
@@ -27,7 +27,7 @@ AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.13], [glasgow-hask
 # when the source distribution was created.
 
 if test ! -f mk/config.h.in; then
-   echo "mk/config.h.in doesn't exist: perhaps you haven't run 'sh boot'?"
+   echo "mk/config.h.in doesn't exist: perhaps you haven't run 'perl boot'?"
    exit 1
 fi
 
@@ -125,13 +125,13 @@ if test "$WithGhc" != ""; then
   AC_SUBST(GhcPatchLevel)dnl
   GhcMinVersion2=`echo "$GhcMinVersion" | sed 's/^\\(.\\)$/0\\1/'`
   GhcCanonVersion="$GhcMajVersion$GhcMinVersion2"
-  if test $GhcCanonVersion -ge 609; then ghc_ge_609=YES; else ghc_ge_609=NO; fi
   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
-  AC_SUBST(ghc_ge_609)dnl
+  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
 
 dnl ** Must have GHC to build GHC, unless --enable-hc-boot is on
@@ -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.8],
-    [AC_MSG_ERROR([GHC version 6.8 or later is required to compile GHC.])])dnl
+  FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[6.10],
+    [AC_MSG_ERROR([GHC version 6.10 or later is required to compile GHC.])])dnl
 
   if test `expr $GhcMinVersion % 2` = "1"; then
      if test "$EnableBootstrapWithDevelSnaphost" = "NO"; then
@@ -194,19 +194,27 @@ AC_ARG_WITH([iconv-libraries],
 AC_SUBST(ICONV_INCLUDE_DIRS)
 AC_SUBST(ICONV_LIB_DIRS)
 
+dnl Allow to specify gmp options to the toplevel configure script
+dnl so they can be properly passed to sub-builds.
+
+AC_ARG_WITH([gmp-includes],
+  [AC_HELP_STRING([--with-gmp-includes],
+    [directory containing gmp.h])],
+    [GMP_INCLUDE_DIRS=$withval])
+
+AC_ARG_WITH([gmp-libraries],
+  [AC_HELP_STRING([--with-gmp-libraries],
+    [directory containing gmp library])],
+    [GMP_LIB_DIRS=$withval])
+
+AC_SUBST(GMP_INCLUDE_DIRS)
+AC_SUBST(GMP_LIB_DIRS)
+
 dnl--------------------------------------------------------------------
 dnl * Choose host(/target/build) platform
 dnl--------------------------------------------------------------------
-dnl We don't use the standard autoconf macros for this, but instead
-dnl ask the bootstrapping compiler what platform it is for
-
-dnl Guess host/target/build platform(s) if necessary.
-m4_divert_once([HELP_CANON],
-[[
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [guessed]
-  --target=TARGET   configure for building compilers for TARGET [guessed]]])dnl
+dnl If we aren't explicitly told what values to use with configure flags,
+dnl we ask the bootstrapping compiler what platform it is for
 
 if test "${WithGhc}" != ""
 then
@@ -424,9 +432,11 @@ then
     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"
     if ! test -d inplace/mingw ||
          test inplace/mingw -ot ghc-tarballs/mingw/binutils*.tar.gz ||
          test inplace/mingw -ot ghc-tarballs/mingw/gcc-core*.tar.gz ||
+         test inplace/mingw -ot ghc-tarballs/mingw/gcc-g++*.tar.gz ||
          test inplace/mingw -ot ghc-tarballs/mingw/libcrypt*.tar.bz2 ||
          test inplace/mingw -ot ghc-tarballs/mingw/mingw-runtime*.tar.gz ||
          test inplace/mingw -ot ghc-tarballs/mingw/w32api*.tar.gz
@@ -439,6 +449,7 @@ then
             cd inplace/mingw &&
             tar -zxf ../../ghc-tarballs/mingw/binutils*.tar.gz &&
             tar -zxf ../../ghc-tarballs/mingw/gcc-core*.tar.gz &&
+            tar -zxf ../../ghc-tarballs/mingw/gcc-g++*.tar.gz &&
             tar -jxf ../../ghc-tarballs/mingw/libcrypt*.tar.bz2 &&
             tar -zxf ../../ghc-tarballs/mingw/mingw-runtime*.tar.gz &&
             tar -zxf ../../ghc-tarballs/mingw/w32api*.tar.gz &&
@@ -574,6 +585,7 @@ dnl If you can run configure, you certainly have /bin/sh
 AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
 
 dnl ** how to invoke `ar' and `ranlib'
+FP_PROG_AR_SUPPORTS_ATFILE
 FP_PROG_AR_NEEDS_RANLIB
 FP_PROG_AR_SUPPORTS_INPUT
 
@@ -827,6 +839,11 @@ AC_COMPILE_IFELSE(
 dnl *** check for GNU non-executable stack note support (ELF only)
 dnl     (.section .note.GNU-stack,"",@progbits)
 
+dnl This test doesn't work with "gcc -g" in gcc 4.4 (GHC trac #3889:
+dnl     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
+dnl so we empty CFLAGS while running this test
+CFLAGS2="$CFLAGS"
+CFLAGS=
 AC_MSG_CHECKING(for GNU non-executable stack support)
 AC_COMPILE_IFELSE(
     [AC_LANG_PROGRAM([__asm__ (".section .note.GNU-stack,\"\",@progbits");], [0])],
@@ -835,6 +852,7 @@ AC_COMPILE_IFELSE(
                [Define to 1 if GNU non-executable stack notes are supported.])
     ],
     [AC_MSG_RESULT(no)])
+CFLAGS="$CFLAGS2"
 
 dnl ** check for librt
 AC_CHECK_LIB(rt, clock_gettime)
@@ -903,12 +921,16 @@ AC_SUBST(BUILD_DOCBOOK_PS)
 AC_SUBST(BUILD_DOCBOOK_PDF)
 
 LIBRARY_VERSION(base)
+LIBRARY_VERSION(Cabal)
+LIBRARY_VERSION(ghc-prim)
+LIBRARY_ghc_VERSION="$ProjectVersion"
+AC_SUBST(LIBRARY_ghc_VERSION)
 
 if grep '      ' compiler/ghc.cabal.in 2>&1 >/dev/null; then
    AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them])
 fi
 
-AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml distrib/ghc.iss distrib/configure.ac])
+AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal ghc.spec extra-gcc-opts docs/users_guide/ug-book.xml docs/users_guide/ug-ent.xml docs/index.html libraries/prologue.txt distrib/ghc.iss distrib/configure.ac])
 AC_CONFIG_COMMANDS([mk/stamp-h],[echo timestamp > mk/stamp-h])
 AC_OUTPUT