Mercurial > hg > octave-lyh > gnulib-hg
changeset 13462:88292c519d86
Unify tests that set gl_cv_func_ldexp_no_libm.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 12 Jul 2010 23:36:34 +0200 |
parents | b9e80fe39af5 |
children | 592d6086de3f |
files | ChangeLog m4/ldexp.m4 m4/strtod.m4 modules/ldexp modules/strtod |
diffstat | 5 files changed, 68 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-07-12 Bruno Haible <bruno@clisp.org> + + Unify tests that set gl_cv_func_ldexp_no_libm. + * m4/ldexp.m4: New file, based on m4/mathfunc.m4. + * m4/strtod.m4 (gl_PREREQ_STRTOD): Require gl_CHECK_LDEXP_NO_LIBM. + * modules/ldexp (Files): Remove m4/mathfunc.m4. Add m4/ldexp.m4. + (configure.ac): Simply invoke gl_FUNC_LDEXP. + * modules/strtod (Files): Add m4/ldexp.m4. + 2010-07-12 Bruno Haible <bruno@clisp.org> Unify tests that set gl_cv_func_frexpl_no_libm.
new file mode 100644 --- /dev/null +++ b/m4/ldexp.m4 @@ -0,0 +1,54 @@ +# ldexp.m4 serial 1 +dnl Copyright (C) 2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_LDEXP], +[ + AC_REQUIRE([gl_CHECK_LDEXP_NO_LIBM]) + LDEXP_LIBM= + if test $gl_cv_func_ldexp_no_libm = no; then + AC_CACHE_CHECK([whether ldexp() can be used with libm], + [gl_cv_func_ldexp_in_libm], + [ + save_LIBS="$LIBS" + LIBS="$LIBS -lm" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include <math.h> + double (*funcptr) (double, int) = ldexp; + double x;]], + [[return ldexp (x, -1) > 0;]])], + [gl_cv_func_ldexp_in_libm=yes], + [gl_cv_func_ldexp_in_libm=no]) + LIBS="$save_LIBS" + ]) + if test $gl_cv_func_ldexp_in_libm = yes; then + LDEXP_LIBM=-lm + fi + fi + AC_SUBST([LDEXP_LIBM]) +]) + +dnl Test whether ldexp() can be used without linking with libm. +dnl Set gl_cv_func_ldexp_no_libm to 'yes' or 'no' accordingly. +AC_DEFUN([gl_CHECK_LDEXP_NO_LIBM], +[ + AC_CACHE_CHECK([whether ldexp() can be used without linking with libm], + [gl_cv_func_ldexp_no_libm], + [ + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#ifndef __NO_MATH_INLINES + # define __NO_MATH_INLINES 1 /* for glibc */ + #endif + #include <math.h> + double (*funcptr) (double, int) = ldexp; + double x;]], + [[return ldexp (x, -1) > 0;]])], + [gl_cv_func_ldexp_no_libm=yes], + [gl_cv_func_ldexp_no_libm=no]) + ]) +])
--- a/m4/strtod.m4 +++ b/m4/strtod.m4 @@ -1,4 +1,4 @@ -# strtod.m4 serial 15 +# strtod.m4 serial 16 dnl Copyright (C) 2002-2003, 2006-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -119,18 +119,8 @@ ]) # Prerequisites of lib/strtod.c. -# FIXME: This implementation is a copy of printf-frexp.m4 and should be shared. AC_DEFUN([gl_PREREQ_STRTOD], [ - AC_CACHE_CHECK([whether ldexp can be used without linking with libm], - [gl_cv_func_ldexp_no_libm], - [ - AC_TRY_LINK([#include <math.h> - double x; - int y;], - [return ldexp (x, y) < 1;], - [gl_cv_func_ldexp_no_libm=yes], - [gl_cv_func_ldexp_no_libm=no]) - ]) + AC_REQUIRE([gl_CHECK_LDEXP_NO_LIBM]) if test $gl_cv_func_ldexp_no_libm = yes; then AC_DEFINE([HAVE_LDEXP_IN_LIBC], [1], [Define if the ldexp function is available in libc.])