[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
3.14 Autoconf
Autoconf based applications can easily check whether GMP is installed. The
only thing to be noted is that GMP library symbols from version 3 onwards have
prefixes like __gmpz
. The following therefore would be a simple test,
AC_CHECK_LIB(gmp, __gmpz_init)
This just uses the default AC_CHECK_LIB
actions for found or not found,
but an application that must have GMP would want to generate an error if not
found. For example,
AC_CHECK_LIB(gmp, __gmpz_init, , [AC_MSG_ERROR([GNU MP not found, see https://gmplib.org/])])
If functions added in some particular version of GMP are required, then one of
those can be used when checking. For example mpz_mul_si
was added in
GMP 3.1,
AC_CHECK_LIB(gmp, __gmpz_mul_si, , [AC_MSG_ERROR( [GNU MP not found, or not 3.1 or up, see https://gmplib.org/])])
An alternative would be to test the version number in ‘gmp.h’ using say
AC_EGREP_CPP
. That would make it possible to test the exact version,
if some particular sub-minor release is known to be necessary.
In general it’s recommended that applications should simply demand a new enough GMP rather than trying to provide supplements for features not available in past versions.
Occasionally an application will need or want to know the size of a type at
configuration or preprocessing time, not just with sizeof
in the code.
This can be done in the normal way with mp_limb_t
etc, but GMP 4.0 or
up is best for this, since prior versions needed certain ‘-D’ defines on
systems using a long long
limb. The following would suit Autoconf 2.50
or up,
AC_CHECK_SIZEOF(mp_limb_t, , [#include <gmp.h>])
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on March 31, 2014 using texi2html 5.0.