Ignore .rej files
[ghc-hetmet.git] / configure.ac
index ea06662..7baa3dd 100644 (file)
@@ -200,72 +200,7 @@ AC_CANONICAL_BUILD
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
 
-# If no argument was given for a configuration variable, then discard
-# the guessed canonical system and use the configuration of the
-# bootstrapping ghc. If an argument was given, map it from gnu format
-# to ghc format.
-#
-# For why we do it this way, see: #3637, #1717, #2951
-
-if test "$build_alias" = ""
-then
-    if test "${WithGhc}" != ""
-    then
-        build=$bootstrap_target
-        echo "Build platform inferred as: $build"
-    else
-        echo "Can't work out build platform"
-        exit 1
-    fi
-
-    BuildArch=`echo "$build" | sed 's/-.*//'`
-    BuildVendor=`echo "$build" | sed -e 's/.*-\(.*\)-.*/\1/'`
-    BuildOS=`echo "$build" | sed 's/.*-//'`
-else
-    GHC_CONVERT_CPU([$build_cpu], [BuildArch])
-    GHC_CONVERT_VENDOR([$build_vendor], [BuildVendor])
-    GHC_CONVERT_OS([$build_os], [BuildOS])
-fi
-
-if test "$host_alias" = ""
-then
-    if test "${WithGhc}" != ""
-    then
-        host=$bootstrap_target
-        echo "Host platform inferred as: $host"
-    else
-        echo "Can't work out host platform"
-        exit 1
-    fi
-
-    HostArch=`echo "$host" | sed 's/-.*//'`
-    HostVendor=`echo "$host" | sed -e 's/.*-\(.*\)-.*/\1/'`
-    HostOS=`echo "$host" | sed 's/.*-//'`
-else
-    GHC_CONVERT_CPU([$host_cpu], [HostArch])
-    GHC_CONVERT_VENDOR([$host_vendor], [HostVendor])
-    GHC_CONVERT_OS([$host_os], [HostOS])
-fi
-
-if test "$target_alias" = ""
-then
-    if test "${WithGhc}" != ""
-    then
-        target=$bootstrap_target
-        echo "Target platform inferred as: $target"
-    else
-        echo "Can't work out target platform"
-        exit 1
-    fi
-
-    TargetArch=`echo "$target" | sed 's/-.*//'`
-    TargetVendor=`echo "$target" | sed -e 's/.*-\(.*\)-.*/\1/'`
-    TargetOS=`echo "$target" | sed 's/.*-//'`
-else
-    GHC_CONVERT_CPU([$target_cpu], [TargetArch])
-    GHC_CONVERT_VENDOR([$target_vendor], [TargetVendor])
-    GHC_CONVERT_OS([$target_os], [TargetOS])
-fi
+FPTOOLS_SET_PLATFORM_VARS
 
 exeext=''
 soext='.so'
@@ -287,6 +222,21 @@ x86_64-apple-darwin)
     ;;
 esac
 
+# Testing if we shall enable shared libs support on Solaris.
+# Anything older than SunOS 5.11 aka Solaris 11 (Express) is broken.
+
+SOLARIS_BROKEN_SHLD=NO
+
+case $host in
+     i386-*-solaris2)
+     # here we go with the test
+     MINOR=`uname -r|cut -d '.' -f 2-`
+     if test "$MINOR" -lt "11"; then
+       SOLARIS_BROKEN_SHLD=YES
+     fi
+     ;;
+esac
+
 # Sync this with cTargetArch in compiler/ghc.mk
 checkArch() {
     case $1 in
@@ -353,7 +303,7 @@ checkOS "$TargetOS"
 
 # Verify that the installed (bootstrap) GHC is capable of generating
 # code for the requested build platform.
-if test "$build" != "$bootstrap_target"
+if test "$BuildPlatform" != "$bootstrap_target"
 then
     echo "This GHC (${WithGhc}) does not generate code for the build platform"
     echo "   GHC target platform    : $bootstrap_target"
@@ -361,6 +311,10 @@ then
     exit 1
 fi
 
+echo "GHC build  : $BuildPlatform"
+echo "GHC host   : $HostPlatform"
+echo "GHC target : $TargetPlatform"
+
 AC_SUBST(BuildPlatform)
 AC_SUBST(HostPlatform)
 AC_SUBST(TargetPlatform)
@@ -383,6 +337,8 @@ AC_SUBST(TargetVendor_CPP)
 AC_SUBST(exeext)
 AC_SUBST(soext)
 
+AC_SUBST(SOLARIS_BROKEN_SHLD)
+
 AC_ARG_WITH(hc,
 [AC_HELP_STRING([--with-hc=ARG],
         [Use ARG as the path to the compiler for compiling ordinary
@@ -411,6 +367,7 @@ then
          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     ||
@@ -427,6 +384,7 @@ then
             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   &&
@@ -477,6 +435,41 @@ FP_ARG_WITH_PATH_GNU_PROG([NM], [nm])
 NmCmd="$NM"
 AC_SUBST([NmCmd])
 
+SplitObjsBroken=NO
+if test "$TargetOS_CPP" = "darwin"
+then
+    AC_MSG_CHECKING(XCode version)
+    XCodeVersion=`xcodebuild -version | grep Xcode | sed "s/Xcode //"`
+    # Old XCode versions don't actually give the XCode version
+    if test "$XCodeVersion" = ""
+    then
+        AC_MSG_RESULT(not found (too old?))
+        SplitObjsBroken=YES
+    else
+        AC_MSG_RESULT($XCodeVersion)
+        XCodeVersion1=`echo "$XCodeVersion" | sed 's/\..*//'`
+changequote(, )dnl
+        XCodeVersion2=`echo "$XCodeVersion" | sed 's/[^.]*\.\([^.]*\).*/\1/'`
+changequote([, ])dnl
+        AC_MSG_NOTICE(XCode version component 1: $XCodeVersion1)
+        AC_MSG_NOTICE(XCode version component 2: $XCodeVersion2)
+        # Split objects is broken (#4013) with XCode < 3.2
+        if test "$XCodeVersion1" -lt 3
+        then
+            SplitObjsBroken=YES
+        else
+            if test "$XCodeVersion1" -eq 3
+            then
+                if test "$XCodeVersion2" -lt 2
+                then
+                    SplitObjsBroken=YES
+                fi
+            fi
+        fi
+    fi
+fi
+AC_SUBST([SplitObjsBroken])
+
 dnl ** Mac OS X: explicit deployment target
 dnl --------------------------------------------------------------
 AC_ARG_WITH([macosx-deployment-target],
@@ -610,7 +603,7 @@ dnl ** check for dtrace (currently only implemented for Mac OS X)
 HaveDtrace=NO
 AC_PATH_PROG(DtraceCmd,dtrace)
 if test -n "$DtraceCmd"; then
-  if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple"; then
+  if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple" -o "x$TargetOS_CPP-$TargetVendor_CPP" == "xsolaris2-unknown"; then
     HaveDtrace=YES
   fi
 fi
@@ -823,6 +816,7 @@ FP_LEADING_UNDERSCORE
 dnl ** check for ld, whether it has an -x option, and if it is GNU ld
 FP_PROG_LD_X
 FP_PROG_LD_IS_GNU
+FP_PROG_LD_BUILD_ID
 
 dnl ** check for Apple-style dead-stripping support
 dnl    (.subsections-via-symbols assembler directive)
@@ -937,7 +931,7 @@ 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 utils/runghc/runghc.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 distrib/MacOS/installer-scripts/create-links distrib/MacOS/installer-scripts/Uninstaller distrib/MacOS/GHC-system.pmdoc/index.xml])
+AC_CONFIG_FILES([mk/config.mk mk/install.mk mk/project.mk compiler/ghc.cabal ghc/ghc-bin.cabal utils/runghc/runghc.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