summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--m4/guix.m418
2 files changed, 21 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index aa60471143..1598bfae94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,9 +151,9 @@ if test "x$guix_cv_have_recent_guile_git" != "xyes"; then
 fi
 
 dnl Check for Guile-zlib.
-GUILE_MODULE_AVAILABLE([have_guile_zlib], [(zlib)])
-if test "x$have_guile_zlib" != "xyes"; then
-  AC_MSG_ERROR([Guile-zlib is missing; please install it.])
+GUIX_CHECK_GUILE_ZLIB
+if test "x$guix_cv_have_recent_guile_zlib" != "xyes"; then
+  AC_MSG_ERROR([A recent Guile-zlib could not be found; please install it.])
 fi
 
 dnl Check for Guile-lzlib.
diff --git a/m4/guix.m4 b/m4/guix.m4
index c1ce0876fa..90a106add8 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -226,6 +226,24 @@ AC_DEFUN([GUIX_CHECK_GUILE_GIT], [
      fi])
 ])
 
+dnl GUIX_CHECK_GUILE_ZLIB
+dnl
+dnl Check whether a recent-enough Guile-zlib is available.
+AC_DEFUN([GUIX_CHECK_GUILE_ZLIB], [
+  dnl Check whether we're using Guile-zlib 0.1.0 or later.
+  dnl 0.1.0 introduced the 'make-zlib-input-port' and related code.
+  AC_CACHE_CHECK([whether Guile-zlib is available and recent enough],
+    [guix_cv_have_recent_guile_zlib],
+    [GUILE_CHECK([retval],
+      [(use-modules (zlib))
+       make-zlib-input-port])
+     if test "$retval" = 0; then
+       guix_cv_have_recent_guile_zlib="yes"
+     else
+       guix_cv_have_recent_guile_zlib="no"
+     fi])
+])
+
 dnl GUIX_TEST_ROOT_DIRECTORY
 AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [
   AC_CACHE_CHECK([for unit test root directory],