change hetmet directory to compiler/hetmet/, update to new git url
[ghc-hetmet.git] / aclocal.m4
index e6410d7..ae9e41e 100644 (file)
@@ -4,16 +4,94 @@
 # ensure we don't clash with any pre-supplied autoconf ones.
 
 
+# FPTOOLS_SET_PLATFORM_VARS
+# ----------------------------------
+# Set the platform variables
+AC_DEFUN([FPTOOLS_SET_PLATFORM_VARS],
+[
+    # 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
+    #
+    # In bindists, we haven't called AC_CANONICAL_{BUILD,HOST,TARGET}
+    # so this justs uses $bootstrap_target.
+
+    if test "$build_alias" = ""
+    then
+        if test "$bootstrap_target" != ""
+        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 "$bootstrap_target" != ""
+        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 "$bootstrap_target" != ""
+        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_C_LD_FLAGS
 # ----------------------------------
 # Set the C, LD and CPP flags for a given platform
 # $1 is the platform
-# $2 is the name of the C flags variable
-# $3 is the name of the LD flags variable
-# $4 is the name of the CPP flags variable
+# $2 is the name of the CC flags variable
+# $3 is the name of the linker flags variable when linking with gcc
+# $4 is the name of the linker flags variable when linking with ld
+# $5 is the name of the CPP flags variable
 AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
 [
-    AC_MSG_CHECKING([Setting up $2, $3 and $4])
+    AC_MSG_CHECKING([Setting up $2, $3, $4 and $5])
     case $$1 in
     i386-apple-darwin)
         # By default, gcc on OS X will generate SSE
@@ -21,17 +99,15 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
         # but we don't 16-byte align things. Thus drop
         # back to generic i686 compatibility. Trac #2983.
         $2="$$2 -march=i686 -m32"
-        # It's not clear if $3 flags will be given to gcc or ld,
-        # and they accept different flags, so for now do nothing
-        # $3="$$3 -march=i686 -m32"
-        $4="$$4 -march=i686 -m32"
+        $3="$$3 -march=i686 -m32"
+        $4="$$4 -arch i386"
+        $5="$$5 -march=i686 -m32"
         ;;
     x86_64-apple-darwin)
         $2="$$2 -m64"
-        # It's not clear if $3 flags will be given to gcc or ld,
-        # and they accept different flags, so for now do nothing
-        # $3="$$3 -m64"
-        $4="$$4 -m64"
+        $3="$$3 -m64"
+        $4="$$4 -arch x86_64"
+        $5="$$5 -m64"
         ;;
     esac
 
@@ -39,10 +115,9 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
     i386-apple-darwin|x86_64-apple-darwin)
         # We support back to OS X 10.5
         $2="$$2 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
-        # It's not clear if $3 flags will be given to gcc or ld,
-        # and they accept different flags, so for now do nothing
-        # $3="$$3 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
-        $4="$$4 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
+        $3="$$3 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
+        $4="$$4  -macosx_version_min 10.5"
+        $5="$$5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5"
         ;;
     esac