diff options
author | Michael Gran <spk121@yahoo.com> | 2021-02-06 00:36:56 -0800 |
---|---|---|
committer | Michael Gran <spk121@yahoo.com> | 2021-03-02 06:18:32 -0800 |
commit | eb1bd8050ef7fe3ef2a0bd07a42f39ad2f278936 (patch) | |
tree | 8f8e4429950a2ebf2daf7456362b087c1e8aea1c /configure.ac | |
parent | a4a5fbced344b12335d538102c7fe37f5848a519 (diff) | |
download | guile-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.ac | 30 |
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 |