diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-26 09:57:47 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-26 10:07:29 -0700 |
commit | b1384cb6d48be0ad007bac61aba6f1557937f130 (patch) | |
tree | f509021efa1401151d067a674290f9b468d1555b /m4/libgmp.m4 | |
parent | 6e9f94e9b4478b6f32f2da10891239187aed5ea2 (diff) | |
download | gnulib-b1384cb6d48be0ad007bac61aba6f1557937f130.tar.gz |
libgmp: remove dependency on havelib
* m4/libgmp.m4 (gl_LIBGMP): If gl_HAVE_MODULE_HAVELIB is not defined,
use the more-traditional AC_SEARCH_LIBS approach.
This should work better with GNU Emacs configuration,
which uses pkg-config instead of a havelib-style approach.
* modules/havelib (gl_HAVE_MODULE_HAVELIB): New witness macro.
* modules/libgmp (Depends-on): Remove havelib.
Diffstat (limited to 'm4/libgmp.m4')
-rw-r--r-- | m4/libgmp.m4 | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/m4/libgmp.m4 b/m4/libgmp.m4 index e48b5c2c2b..82c065e2c2 100644 --- a/m4/libgmp.m4 +++ b/m4/libgmp.m4 @@ -1,4 +1,4 @@ -# libgmp.m4 serial 3 +# libgmp.m4 serial 4 # Configure the GMP library or a replacement. dnl Copyright 2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -6,10 +6,10 @@ dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl gl_LIBGMP -dnl Searches for an installed libgmp. -dnl If found, it sets and AC_SUBSTs HAVE_LIBGMP=yes and the LIBGMP and LTLIBGMP -dnl variables, and augments the CPPFLAGS variable, and #defines HAVE_LIBGMP. -dnl Otherwise, it sets and AC_SUBSTs HAVE_LIBGMP=no and LIBGMP and LTLIBGMP to +dnl Search for an installed libgmp. +dnl If found, set and AC_SUBST HAVE_LIBGMP=yes and the LIBGMP and LTLIBGMP +dnl variables, and augment the CPPFLAGS variable, and #define HAVE_LIBGMP to 1. +dnl Otherwise, set and AC_SUBST HAVE_LIBGMP=no and LIBGMP and LTLIBGMP to dnl empty. AC_DEFUN([gl_LIBGMP], @@ -25,19 +25,35 @@ AC_DEFUN([gl_LIBGMP], LTLIBGMP= ;; *) - AC_LIB_HAVE_LINKFLAGS([gmp], [], - [#include <gmp.h>], - [static const mp_limb_t x[2] = { 0x73, 0x55 }; - mpz_t tmp; - mpz_roinit_n (tmp, x, 2); - ], - [no]) - if test $HAVE_LIBGMP = no; then - case "$with_libgmp" in - yes) - AC_MSG_ERROR([GMP not found, although --with-libgmp was specified. Try specifying --with-libgmp-prefix=DIR.]) - ;; - esac + dnl Prefer AC_LIB_HAVE_LINKFLAGS if the havelib module is also in use. + m4_ifdef([gl_HAVE_MODULE_HAVELIB], + [AC_LIB_HAVE_LINKFLAGS([gmp], [], + [#include <gmp.h>], + [static const mp_limb_t x[2] = { 0x73, 0x55 }; + mpz_t tmp; + mpz_roinit_n (tmp, x, 2); + ], + [no])], + [gl_saved_LIBS=$LIBS + AC_SEARCH_LIBS([__gmpz_roinit_n], [gmp]) + LIBS=$gl_saved_LIBS + case $ac_cv_search___gmpz_roinit_n in + 'none needed') + HAVE_LIBGMP=yes LIBGMP=;; + -*) + HAVE_LIBGMP=yes LIBGMP=$ac_cv_search___gmpz_roinit_n;; + *) + HAVE_LIBGMP=no LIBGMP=;; + esac + LTLIBGMP=$LIBGMP + AC_SUBST([HAVE_LIBGMP]) + AC_SUBST([LIBGMP]) + AC_SUBST([LTLIBGMP])]) + if test "$with_libgmp,$HAVE_LIBGMP" = yes,no; then + AC_MSG_ERROR( + [GMP not found, although --with-libgmp was specified.m4_ifdef( + [AC_LIB_HAVE_LINKFLAGS], + [ Try specifying --with-libgmp-prefix=DIR.])]) fi ;; esac |