summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorMichael Gran <spk121@yahoo.com>2021-02-06 00:36:56 -0800
committerMichael Gran <spk121@yahoo.com>2021-03-02 06:18:32 -0800
commiteb1bd8050ef7fe3ef2a0bd07a42f39ad2f278936 (patch)
tree8f8e4429950a2ebf2daf7456362b087c1e8aea1c /configure.ac
parenta4a5fbced344b12335d538102c7fe37f5848a519 (diff)
downloadguile-eb1bd8050ef7fe3ef2a0bd07a42f39ad2f278936.tar.gz
Enable option to prefer mini-gmp over libgmp
* configure.ac: rework gmp library detection. Add new flag. * libguile.h: modify gmp header inclusion * libguile/Makefile.am: add mini-gmp.[ch] files * libguile/bytevectors.c: add mini-gmp headers * libguile/gen-scmconfig.c: new #include variable GUILE_MINI_GMP * libguile/init.c: add mini-gmp header * libguile/mini-gmp.c: new file * libguile/mini-gmp.h: new file * libguile/numbers.c: add fallback for missing mpz_get_d_2exp * libguile/numbers.h: yse mini-gmp header * libguile/random.c: use mini-gmp header * libguile/socket.c: use mini-gmp header
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac30
1 files changed, 18 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 271ac3c2d..9be807ff1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -646,22 +646,28 @@ fi
AC_CACHE_SAVE
dnl GMP tests
-AC_LIB_HAVE_LINKFLAGS([gmp],
+
+PKG_CHECK_MODULES([GMP],[gmp],
[],
- [#include <gmp.h>],
- [mpz_import (0, 0, 0, 0, 0, 0, 0);])
+ [$enable_mini_gmp=yes])
-if test "x$HAVE_LIBGMP" != "xyes"; then
- AC_MSG_ERROR([GNU MP 4.1 or greater not found, see README])
+AC_ARG_ENABLE(mini-gmp,
+ [ --enable-mini-gmp use mini-gmp instead of the full GMP library])
+if test "$enable_mini_gmp" = yes; then
+ AC_DEFINE([GUILE_MINI_GMP], 1,
+ [Define this if you want to use mini-gmp.])
+else
+ LIBS="$GMP_LIBS $LIBS"
+ CFLAGS="$GMP_CFLAGS $CFLAGS"
fi
+AM_CONDITIONAL([USE_MINI_GMP], [test "x$enable_mini_gmp" = "xyes"])
-dnl `mpz_inits' and `mpz_clears' appeared in GMP 5.0.0.
-save_CPPFLAGS="$CPPFLAGS"
-if test "x$LIBGMP_PREFIX" != "x"; then
- CPPFLAGS="-I$LIBGMP_PREFIX $CPPFLAGS"
-fi
-AC_CHECK_DECLS([mpz_inits], [], [], [[#include <gmp.h>]])
-CPPFLAGS="$save_CPPFLAGS"
+AC_CHECK_DECLS([mpz_inits], [], [],
+ [[#if GUILE_MINI_GMP
+ #include "libguile/mini-gmp.h"
+ #else
+ #include <gmp.h>
+ #endif]])
dnl GNU libunistring is checked for by Gnulib's `libunistring' module.
if test "x$LTLIBUNISTRING" = "x"; then