diff --git a/configure.ac b/configure.ac index a32ff4b..089dfbe 100644 --- a/configure.ac +++ b/configure.ac @@ -146,6 +146,10 @@ AC_ARG_ENABLE(regex, [ --disable-regex omit regular expression interfaces],, enable_regex=yes) +AC_ARG_ENABLE(gmp, + [ --disable-gmp omit high performance bignums],, + enable_gmp=yes) + AC_ARG_ENABLE([deprecated], AS_HELP_STRING([--disable-deprecated],[omit deprecated features])) @@ -869,15 +873,20 @@ fi AC_CACHE_SAVE dnl GMP tests +if test "x$enable_gmp" != xno ; then AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include ], [mpz_import (0, 0, 0, 0, 0, 0, 0);]) if test "x$HAVE_LIBGMP" != "xyes"; then - AC_MSG_ERROR([GNU MP 4.1 or greater not found, see README]) + AC_MSG_NOTICE([GNU MP 4.1 or greater not found, see README]) + enable_gmp=no +fi +fi +if test "x$enable_gmp" = xno ; then + AC_LIBOBJ([mini-gmp]) fi - dnl GNU libunistring is checked for by Gnulib's `libunistring' module. if test "x$LTLIBUNISTRING" = "x"; then AC_MSG_ERROR([GNU libunistring is required, please install it.]) @@ -1253,7 +1262,7 @@ main (int argc, char **argv) # Boehm's GC library # #-------------------------------------------------------------------- -PKG_CHECK_MODULES([BDW_GC], [bdw-gc]) +# PKG_CHECK_MODULES([BDW_GC], [bdw-gc]) save_LIBS="$LIBS" LIBS="$BDW_GC_LIBS $LIBS" diff --git a/libguile.h b/libguile.h index 7ac98a5..457dd66 100644 --- a/libguile.h +++ b/libguile.h @@ -22,8 +22,11 @@ /* This needs to be included outside of the extern "C" block. */ +#if HAVE_LIBGMP #include - +#else +#include "libguile/mini-gmp.h" +#endif #ifdef __cplusplus extern "C" { #endif diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 811e8d8..240e457 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -24,7 +24,11 @@ #include #include +#if HAVE_LIBGMP #include +#else +#include "mini-gmp.h" +#endif #include "libguile/_scm.h" #include "libguile/extensions.h" diff --git a/libguile/init.c b/libguile/init.c index 35ab856..bb79422 100644 --- a/libguile/init.c +++ b/libguile/init.c @@ -29,7 +29,11 @@ #include #include #include +#if HAVE_LIBGMP #include +#else +#include "mini-gmp.h" +#endif #include "libguile/_scm.h" diff --git a/libguile/numbers.h b/libguile/numbers.h index b7bcfe4..166f222 100644 --- a/libguile/numbers.h +++ b/libguile/numbers.h @@ -22,9 +22,11 @@ */ - +#ifdef HAVE_LIBGMP #include - +#else +#include "mini-gmp.h" +#endif #include "libguile/__scm.h" #include "libguile/print.h" diff --git a/libguile/random.c b/libguile/random.c index 8bc0d87..c216245 100644 --- a/libguile/random.c +++ b/libguile/random.c @@ -25,7 +25,11 @@ #include "libguile/_scm.h" +#if HAVE_LIBGMP #include +#else +#include "mini-gmp.h" +#endif #include #include #include diff --git a/libguile/socket.c b/libguile/socket.c index d085d33..5ec20a2 100644 --- a/libguile/socket.c +++ b/libguile/socket.c @@ -25,7 +25,11 @@ #endif #include +#if HAVE_LIBGMP #include +#else +#include "mini-gmp.h" +#endif #include "libguile/_scm.h" #include "libguile/arrays.h"