-dnl $Id: aclocal.m4,v 1.51 2000/06/29 13:40:17 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.53 2000/07/11 10:47:06 simonmar Exp $
dnl
dnl Extra autoconf macros for the Glasgow fptools
dnl
rm -fr conftest*
])
+dnl Test for version of installed ghc. Uses $GHC. Largely pinched from c2hs.
+dnl
+dnl
+dnl FPTOOLS_GHC_VERSION
+dnl FPTOOLS_GHC_VERSION(version)
+dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel])
+dnl
+dnl Test for version of installed ghc. Uses $GHC.
+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)