[project @ 2000-07-11 21:25:37 by michaelw]
[ghc-hetmet.git] / aclocal.m4
index 8cec317..b1c87ea 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.51 2000/06/29 13:40:17 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.54 2000/07/11 21:25:37 michaelw Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -350,6 +350,60 @@ fi
 rm -fr conftest*
 ])
 
+dnl
+dnl FPTOOLS_GHC_VERSION
+dnl FPTOOLS_GHC_VERSION(version)
+dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
+dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel)
+dnl
+dnl Test for version of installed ghc.  Uses $GHC.
+dnl [original version pinched from c2hs]
+dnl
+AC_DEFUN(FPTOOLS_GHC_VERSION,
+[define([FPTOOLS_CV_GHC_VERSION], [fptools_cv_ghc_version])dnl
+AC_CACHE_CHECK([version of ghc], FPTOOLS_CV_GHC_VERSION, [dnl
+${GHC-ghc} --version > conftestghc 2>&1
+  cat conftestghc >&AC_FD_CC
+dnl `Useless Use Of cat' award...
+changequote(<<, >>)dnl
+  FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/.* version \([0-9.]\+\(, patchlevel [0-9]\+\)\?\)/\1/;t PL;b;:PL s/, patchlevel */./;p'`
+changequote([, ])dnl
+  rm -fr conftest*
+  if test "[$]FPTOOLS_CV_GHC_VERSION" = ""
+  then
+    FPTOOLS_CV_GHC_VERSION='unknown'
+  fi])
+changequote(<<, >>)dnl
+FPTOOLS_CV_GHC_VERSION<<_major>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^\([0-9]\).*/\1/'`
+FPTOOLS_CV_GHC_VERSION<<_minor>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^[0-9]\.\([0-9]*\).*/\1/'`
+FPTOOLS_CV_GHC_VERSION<<_pl>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -n -e 's/^[0-9]\.[0-9]*\.\([0-9]*\)/\1/p'`
+changequote([, ])dnl
+if test "[$]FPTOOLS_CV_GHC_VERSION[_pl]" = ""
+then
+  FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor]"
+  FPTOOLS_CV_GHC_VERSION[_pl]="0"
+else
+  FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor].[$]FPTOOLS_CV_GHC_VERSION[_pl]"
+fi
+ifelse($#, [1], [dnl
+[$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
+], $#, [2], [dnl
+[$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
+[$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
+], $#, [3], [dnl
+[$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
+[$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
+[$3]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
+], $#, [4], [dnl
+[$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]"
+[$2]="[$]FPTOOLS_CV_GHC_VERSION[_major]"
+[$3]="[$]FPTOOLS_CV_GHC_VERSION[_minor]"
+[$4]="[$]FPTOOLS_CV_GHC_VERSION[_pl]"
+], [AC_MSG_ERROR([wrong number of arguments to $0])])dnl
+undefine(FPTOOLS_CV_GHC_VERSION)dnl
+])dnl
+
+
 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)