[project @ 2000-07-05 17:01:59 by simonmar]
[ghc-hetmet.git] / aclocal.m4
index 8f12e0d..e636a5c 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.49 2000/06/08 20:57:02 panne Exp $
+dnl $Id: aclocal.m4,v 1.52 2000/06/30 09:34:09 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -73,6 +73,25 @@ fi
 ])
 
 
+dnl *** Does libc contain GNU regex? ***
+dnl 
+AC_DEFUN(FPTOOLS_REGEX_IN_LIBC,
+[AC_CACHE_CHECK([for GNU regex in libc], fptools_cv_have_regex,
+[AC_TRY_LINK([#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <regex.h>
+],[ struct re_pattern_buffer patbuf; re_compile_pattern("",0,&patbuf); ],
+fptools_cv_have_regex=yes, fptools_cv_have_regex=no)])
+if test "$fptools_cv_have_regex" = yes; then
+       HaveRegex=YES
+else
+       HaveRegex=NO
+fi
+AC_SUBST(HaveRegex)
+])
+
+
 dnl ** check for leading underscores in symbol names
 dnl 
 dnl Test for determining whether symbol names have a leading
@@ -331,6 +350,33 @@ fi
 rm -fr conftest*
 ])
 
+dnl Test for version of installed ghc.  Uses $GHC.  Largely pinched from c2hs.
+dnl
+AC_DEFUN(FPTOOLS_GHC_VERSION,
+[ AC_CACHE_CHECK([version of ghc], fptools_cv_ghc_version, [
+    fptools_cv_ghc_version=`$GHC --version 2>&1 | sed -e 's/.*\([[0-9]]\)\.\([[0-9]]*\)\([[.-]]\([[0-9]]*\)\)\?.*/\1.\2.\4/'`
+  ])
+  ghc_maj_vers=`echo $fptools_cv_ghc_version | sed -e 's/^\([[0-9]]\).*/\1/'`
+  ghc_min_vers=`echo $fptools_cv_ghc_version | sed -e 's/^[[0-9]]\.\([[0-9]]*\).*/\1/'`
+  ghc_patch_level=`echo $fptools_cv_ghc_version | sed -e 's/^[[0-9]]\.[[0-9]]*\.\([[0-9]]*\)/\1/'`
+
+  if test "$ghc_patch_level" = ""; then 
+       GhcVersion=$ghc_maj_vers.$ghc_min_vers
+       ghc_patch_level="0"
+  else
+       GhcVersion=$ghc_maj_vers.$ghc_min_vers.$ghc_patch_level
+  fi
+
+  GhcMajVersion=$ghc_maj_vers
+  GhcMinVersion=$ghc_min_vers
+  GhcPatchLevel=$ghc_patch_level
+
+  AC_SUBST(GhcVersion)
+  AC_SUBST(GhcMajVersion)
+  AC_SUBST(GhcMinVersion)
+  AC_SUBST(GhcPatchLevel)
+])
+
 dnl ** figure out the alignment restriction of a type
 dnl    (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE
 dnl     so we can't call REQUIRE)
@@ -377,7 +423,7 @@ undefine([AC_CV_SIZEOF_NAME])dnl
 dnl ** Map an arithmetic C type to a Haskell type.
 dnl    Based on autconf's AC_CHECK_SIZEOF.
 
-dnl FPTOOLS_CHECK_HTYPE(TYPE)
+dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
 AC_DEFUN(FPTOOLS_CHECK_HTYPE,
 [changequote(<<, >>)dnl
 dnl The name to #define.
@@ -412,7 +458,9 @@ main() {
   }
   fclose(f);
   exit(0);
-}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=NotReallyAType, AC_CV_NAME=NotReallyAType)])dnl
+}], AC_CV_NAME=`cat conftestval`,
+ifelse([$2], , AC_CV_NAME=NotReallyAType,      AC_CV_NAME=$2),
+ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl
 AC_MSG_RESULT($AC_CV_NAME)
 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
 undefine([AC_TYPE_NAME])dnl