dnl GMP tests
-PKG_CHECK_MODULES([GMP],[gmp],
- [],
- [$enable_mini_gmp=yes])
-
SCM_I_GSC_ENABLE_MINI_GMP=0
AC_ARG_ENABLE(mini-gmp,
[AS_HELP_STRING([--enable-mini-gmp],
[use mini-gmp instead of the full GMP library])])
-if test "$enable_mini_gmp" = yes || test "$enable_mini_gmp" = y; then
+if test "x$enable_mini_gmp" = xyes || test "x$enable_mini_gmp" = xy; then
SCM_I_GSC_ENABLE_MINI_GMP=1
- AC_DEFINE([ENABLE_MINI_GMP], 1,
- [Define this if you want to use mini-gmp.])
else
- LIBS="$GMP_LIBS $LIBS"
- CFLAGS="$GMP_CFLAGS $CFLAGS"
+ AC_LIB_HAVE_LINKFLAGS([gmp],[],[#include <gmp.h>], [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])
+ fi
+ if test "x$LIBGMP_PREFIX" != "x"; then
+ CPPFLAGS="-I$LIBGMP_PREFIX $CPPFLAGS"
+ fi
+ AC_CHECK_DECLS([mpz_inits], [], [], [[#include <gmp.h>]])
fi
AC_SUBST([SCM_I_GSC_ENABLE_MINI_GMP])
AM_CONDITIONAL([USE_MINI_GMP], [test "x$enable_mini_gmp" = "xyes"])
-AC_CHECK_DECLS([mpz_inits], [], [],
- [[#if ENABLE_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
AC_MSG_ERROR([GNU libunistring is required, please install it.])
(SCM_I_FIXNUM_BIT-1 <= DBL_MANT_DIG \
|| ((n) ^ ((n) >> (SCM_I_FIXNUM_BIT-1))) < (1L << DBL_MANT_DIG))
-#if ! HAVE_DECL_MPZ_INITS
+#if (! HAVE_DECL_MPZ_INITS) || SCM_ENABLE_MINI_GMP
-/* GMP < 5.0.0 lacks `mpz_inits' and `mpz_clears'. Provide them. */
+/* GMP < 5.0.0 and mini-gmp lack `mpz_inits' and `mpz_clears'. Provide
+ them. */
#define VARARG_MPZ_ITERATOR(func) \
static void \
{
long expon;
double signif;
-#if ENABLE_MINI_GMP
+#if SCM_ENABLE_MINI_GMP
int iexpon;
signif = mpz_get_d (SCM_I_BIG_MPZ (b));
signif = frexp (signif, &iexpon);
\f
-#include "libguile/scmconfig.h"
-#include "libguile/error.h"
-#include "libguile/gc.h"
-#include "libguile/print.h"
+#include "libguile/scm.h"
#if SCM_ENABLE_MINI_GMP
#include "libguile/mini-gmp.h"
#else
#include <gmp.h>
#endif
+#include "libguile/error.h"
+#include "libguile/gc.h"
+#include "libguile/print.h"
+
\f
/* Immediate Numbers, also known as fixnums