From 8562ce89152234b39c54eeec81b0abcf0e08d5cf Mon Sep 17 00:00:00 2001
From: simonmar <unknown>
Date: Fri, 30 Jun 2000 09:34:09 +0000
Subject: [PATCH] [project @ 2000-06-30 09:34:09 by simonmar] Check the version
 of the installed ghc, and set GhcVersion, GhcMajVersion, GhcMinVersion and
 GhcPatchLevel make variables.

---
 aclocal.m4      | 29 ++++++++++++++++++++++++++++-
 configure.in    |  8 +++++++-
 mk/config.mk.in |  5 +++++
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/aclocal.m4 b/aclocal.m4
index 8cec31773228..e636a5c8e768 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -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.52 2000/06/30 09:34:09 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -350,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)
diff --git a/configure.in b/configure.in
index a33ec32b5a04..6b91132f2b3b 100644
--- a/configure.in
+++ b/configure.in
@@ -322,7 +322,13 @@ dnl AC_SUBST(TargetVendor_CPP)
 
 AC_SUBST(exeext)
 
-AC_PATH_PROG(GHC,ghc)
+if test "$GHC" = ""; then
+  AC_PATH_PROG(GHC,ghc)
+fi
+if test "$GHC" != ""; then
+  FPTOOLS_GHC_VERSION
+fi
+
 AC_PATH_PROGS(NHC,nhc nhc98)
 AC_PATH_PROG(HBC,hbc)
 
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 7647f2654d6d..0eec930b4aea 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -509,6 +509,11 @@ HSTAGS_PREFIX           = $(FPTOOLS_TOP)/ghc/utils/hstags/
 # $(MKDEPENDHS) is the Haskell dependency generator (ghc -M).
 
 GHC		= @GHC@
+GhcVersion	= @GhcVersion@
+GhcMajVersion	= @GhcMajVersion@
+GhcMinVersion	= @GhcMinVersion@
+GhcPatchLevel	= @GhcPatchLevel@
+
 HBC		= @HBC@
 NHC		= @NHC@
 
-- 
GitLab