Mercurial > hg > octave-lyh > gnulib-hg
changeset 9440:176074d93ed1
New module 'frexp-nolibm'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 03 Nov 2007 16:35:53 +0100 |
parents | 9d292d1d891c |
children | 9e962188d3dd |
files | ChangeLog m4/frexp.m4 modules/frexp-nolibm |
diffstat | 3 files changed, 63 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-11-03 Bruno Haible <bruno@clisp.org> + + * modules/frexp-nolibm: New file. + * m4/frexp.m4 (gl_FUNC_FREXP_NO_LIBM): New macro. + 2007-11-03 Bruno Haible <bruno@clisp.org> * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's return
--- a/m4/frexp.m4 +++ b/m4/frexp.m4 @@ -1,4 +1,4 @@ -# frexp.m4 serial 3 +# frexp.m4 serial 4 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -56,6 +56,37 @@ AC_SUBST([FREXP_LIBM]) ]) +AC_DEFUN([gl_FUNC_FREXP_NO_LIBM], +[ + AC_REQUIRE([gl_MATH_H_DEFAULTS]) + AC_CACHE_CHECK([whether frexp() can be used without linking with libm], + [gl_cv_func_frexp_no_libm], + [ + AC_TRY_LINK([#include <math.h> + double x;], + [int e; return frexp (x, &e) > 0;], + [gl_cv_func_frexp_no_libm=yes], + [gl_cv_func_frexp_no_libm=no]) + ]) + if test $gl_cv_func_frexp_no_libm = yes; then + gl_FUNC_FREXP_WORKS + case "$gl_cv_func_frexp_works" in + *yes) gl_func_frexp_no_libm=yes ;; + *) gl_func_frexp_no_libm=no; REPLACE_FREXP=1 ;; + esac + else + gl_func_frexp_no_libm=no + dnl Set REPLACE_FREXP here because the system may have frexp in libm. + REPLACE_FREXP=1 + fi + if test $gl_func_frexp_no_libm = yes; then + AC_DEFINE([HAVE_FREXP_IN_LIBC], 1, + [Define if the frexp() function is available in libc.]) + else + AC_LIBOBJ([frexp]) + fi +]) + dnl Test whether frexp() works also on denormalized numbers (this fails e.g. on dnl NetBSD 3.0) and on infinite numbers (this fails e.g. on IRIX 6.5). AC_DEFUN([gl_FUNC_FREXP_WORKS],
new file mode 100644 --- /dev/null +++ b/modules/frexp-nolibm @@ -0,0 +1,26 @@ +Description: +frexp() function: split a double into its constituents, without requiring libm. + +Files: +lib/frexp.c +m4/frexp.m4 + +Depends-on: +math +isnan-nolibm + +configure.ac: +gl_FUNC_FREXP_NO_LIBM +gl_MATH_MODULE_INDICATOR([frexp]) + +Makefile.am: + +Include: +<math.h> + +License: +LGPL + +Maintainer: +Bruno Haible, Paolo Bonzini +