1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

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
This commit is contained in:
Michael Gran 2021-02-06 00:36:56 -08:00
parent a4a5fbced3
commit eb1bd8050e
12 changed files with 4951 additions and 25 deletions

View file

@ -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