[project @ 2001-10-23 14:35:12 by rrt]
[ghc-hetmet.git] / aclocal.m4
index 3b675b4..f8435bf 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.79 2001/07/19 09:03:24 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.85 2001/10/13 20:26:13 sof Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -280,7 +280,9 @@ AC_SUBST(YaccCmd)
 
 dnl *** Checking for ar and its arguments + whether we need ranlib.
 dnl
-dnl ArCmd and RANLIB are AC_SUBST'ed
+dnl ArCmd, ArSupportsInput and RANLIB are AC_SUBST'ed
+dnl On Digital UNIX, we test for the -Z (compress) and
+dnl -input (take list of files from external file) flags.
 dnl 
 AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB,
 [AC_PATH_PROG(ArCmd,ar)
@@ -288,7 +290,10 @@ if test -z "$ArCmd"; then
     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
     exit 1;
 fi
-if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
+if $ArCmd clqsZ conftest.a >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd clqsZ"
+    NeedRanLib=''
+elif $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
     ArCmd="$ArCmd clqs"
     NeedRanLib=''
 elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
@@ -310,6 +315,14 @@ fi
 rm -rf conftest*
 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
 AC_SUBST(ArCmd)
+if $ArCmd conftest.a -input /dev/null >/dev/null 2>/dev/null; then
+    ArSupportsInput='-input'
+else
+    ArSupportsInput=''
+fi
+rm -rf conftest*
+test -n "$ArSupportsInput" && test -n "$verbose" && echo "        setting ArSupportsInput to $ArSupportsInput"
+AC_SUBST(ArSupportsInput)
 if test -z "$NeedRanLib"; then
     RANLIB=':'
     test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
@@ -350,14 +363,28 @@ AC_DEFUN(FPTOOLS_HAVE_GCC,
     fptools_cv_have_gcc='no'
 else
 changequote(, )dnl
-    cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/g' `"
+    is_gcc_v1="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 2000 \\\>= \1 \\\* 1000 + \2/g' `"
+    is_gcc_v3="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 3000 \\\<= \1 \\\* 1000 + \2/g' `"
 changequote([, ])dnl
-    if test `eval $cmd_string 2>/dev/null` != "1"; then
-       echo ''
-        echo "I'm not sure if your version of gcc will work,"
-        echo "but it's worth a shot, eh?"
-    fi
     fptools_cv_have_gcc='yes'
+    if test `eval $is_gcc_v1 2>/dev/null` = "1"; then
+        fptools_cv_have_gcc='no'
+        echo ""
+       echo "your gcc version appears to be ..."
+        $CC --version
+        echo "gcc prior to 2.0 and have never worked with ghc."
+        echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
+        AC_MSG_ERROR([gcc 1.X has never been supported])
+    fi
+    if test `eval $is_gcc_v3 2>/dev/null` = "1"; then
+        fptools_cv_have_gcc='no'
+        echo ""
+       echo "your gcc version appears to be ..."
+        $CC --version
+        echo "gcc versions 3.0 and above are not yet supported."
+        echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
+        AC_MSG_ERROR([gcc 3.0 and above is not currently supported])
+    fi
 fi
 ])
 HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
@@ -386,6 +413,29 @@ rm -fr conftest*
 ])
 
 dnl
+dnl Getting at the right version of 'find'
+dnl (i.e., not the MS util on a Win32 box).
+dnl
+AC_DEFUN(FPTOOLS_FIND_FIND,
+[
+AC_PATH_PROG(Find2Cmd, find)
+$Find2Cmd --version > conftest.out 2>&1 
+if grep "FIND: Parameter format" conftest.out >/dev/null 2>&1 ; then
+   # Encountered MS' find utility, which is not what we're after.
+   #
+   # HACK - AC_CHECK_PROG is useful here in that does let you reject
+   # an (absolute) entry in the path (Find2Cmd). It is not so useful
+   # in that it doesn't let you (AFAIU) set VARIABLE equal to the 
+   # absolute path eventually found. So, hack around this by inspecting
+   # what variables hold the abs. path & use them directly.
+   AC_CHECK_PROG(FindCmd,find,`echo $ac_dir/$ac_word`,find,,$Find2Cmd)
+else
+FindCmd=$Find2Cmd
+AC_SUBST(FindCmd)
+fi
+])
+
+dnl
 dnl FPTOOLS_NOCACHE_CHECK prints a message, then sets the
 dnl values of the second argument to the result of running
 dnl the commands given by the third. It does not cache its
@@ -672,10 +722,10 @@ AC_DEFUN([FPTOOLS_END_TEXT_SECTION],
                 if test "$not_done" = 1; then
                   FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text)
                   if test "$fptools_end_of_text" = yes; then
-                    fptools_cv_end_of_text="etext asm("etext")"
+                    fptools_cv_end_of_text="etext"
                   fi
                 fi])
-                if test -n $fptools_cv_end_of_text; then
+                if test -n "$fptools_cv_end_of_text"; then
                   AC_DEFINE_UNQUOTED([TEXT_SECTION_END_MARKER], $fptools_cv_end_of_text)
                 else
                   AC_DEFINE_UNQUOTED([TEXT_SECTION_END_MARKER], dunno_end_of_text)
@@ -695,10 +745,10 @@ AC_DEFUN([FPTOOLS_END_TEXT_SECTION],
                 if test "$not_done" = 1; then
                   FPTOOLS_IN_SCOPE(etext asm("etext"),etext,fptools_end_of_text_decl)
                   if test "$fptools_end_of_text_decl" = yes; then
-                    fptools_cv_end_of_text_decl=etext
+                    fptools_cv_end_of_text_decl="etext asm(\"etext\")"
                   fi
                 fi])
-                if test -n $fptools_cv_end_of_text_decl; then
+                if test -n "$fptools_cv_end_of_text_decl"; then
                   AC_DEFINE_UNQUOTED([TEXT_SECTION_END_MARKER_DECL], $fptools_cv_end_of_text_decl)
                 else
                   AC_DEFINE_UNQUOTED([TEXT_SECTION_END_MARKER_DECL], dunno_end_of_text_decl)
@@ -723,10 +773,10 @@ AC_DEFUN([FPTOOLS_END_DATA_SECTION],
                 if test "$not_done" = 1; then
                   FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data)
                   if test "$fptools_end_of_data" = yes; then
-                    fptools_cv_end_of_data=end
+                    fptools_cv_end_of_data="end"
                   fi
                 fi])
-                if test -n $fptools_cv_end_of_data; then
+                if test -n "$fptools_cv_end_of_data"; then
                   AC_DEFINE_UNQUOTED([DATA_SECTION_END_MARKER], $fptools_cv_end_of_data)
                 else
                   AC_DEFINE_UNQUOTED([DATA_SECTION_END_MARKER], dunno_end_of_data)
@@ -746,10 +796,10 @@ AC_DEFUN([FPTOOLS_END_DATA_SECTION],
                 if test "$not_done" = 1; then
                   FPTOOLS_IN_SCOPE(end asm("end"),end,fptools_end_of_data_decl)
                   if test "$fptools_end_of_data_decl" = yes; then
-                    fptools_cv_end_of_data_decl=end
+                    fptools_cv_end_of_data_decl="end asm(\"end\")"
                   fi
                 fi])
-                if test -n $fptools_cv_end_of_data_decl; then
+                if test -n "$fptools_cv_end_of_data_decl"; then
                   AC_DEFINE_UNQUOTED([DATA_SECTION_END_MARKER_DECL], $fptools_cv_end_of_data_decl)
                 else
                   AC_DEFINE_UNQUOTED([DATA_SECTION_END_MARKER_DECL], dunno_end_of_data_decl)
@@ -1139,8 +1189,8 @@ AC_CACHE_CHECK([whether $CC accepts $1], [ac_cv_cc_$2],
  CFLAGS="$save_CFLAGS"
 ])
 if test "$ac_cv_cc_$2"x = "yesx"; then
-  $2=$extra_flag;
+  $2=$1;
 else
-  $2=$extra_flag;
+  $2="";
 fi;
 ])