Mercurial > hg > octave-jordi > gnulib-hg
view m4/frexp.m4 @ 8998:442682a45bcd
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H): Likewise.
* m4/locale_h.m4 (gl_LOCALE_H): Likewise.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise.
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise.
* m4/sysexits.m4 (gl_SYSEXITS): Likewise.
SCALAR(0x828a248)
* lib/dirent_.h: Likewise.
* lib/iconv_.h: Likewise.
* lib/locale_.h: Likewise.
* lib/netinet_in_.h: Likewise.
* lib/sys_select_.h: Likewise.
* lib/sys_socket_.h: Likewise.
* lib/sysexits_.h: Likewise.
* modules/fchdir: Likewise.
* modules/iconv_open: Likewise.
* modules/locale: Likewise.
* modules/netinet_in: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sysexits: Likewise.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Thu, 21 Jun 2007 17:08:44 +0000 |
parents | 6edec1d2af09 |
children | 176074d93ed1 |
line wrap: on
line source
# frexp.m4 serial 3 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, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FREXP], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) FREXP_LIBM= 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 = no; then AC_CACHE_CHECK([whether frexp() can be used with libm], [gl_cv_func_frexp_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_TRY_LINK([#include <math.h> double x;], [int e; return frexp (x, &e) > 0;], [gl_cv_func_frexp_in_libm=yes], [gl_cv_func_frexp_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_frexp_in_libm = yes; then FREXP_LIBM=-lm fi fi if test $gl_cv_func_frexp_no_libm = yes \ || test $gl_cv_func_frexp_in_libm = yes; then save_LIBS="$LIBS" LIBS="$LIBS $FREXP_LIBM" gl_FUNC_FREXP_WORKS LIBS="$save_LIBS" case "$gl_cv_func_frexp_works" in *yes) gl_func_frexp=yes ;; *) gl_func_frexp=no; REPLACE_FREXP=1; FREXP_LIBM= ;; esac else gl_func_frexp=no fi if test $gl_func_frexp = yes; then AC_DEFINE([HAVE_FREXP], 1, [Define if the frexp() function is available and works.]) else AC_LIBOBJ([frexp]) fi AC_SUBST([FREXP_LIBM]) ]) 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], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([whether frexp works], [gl_cv_func_frexp_works], [ AC_TRY_RUN([ #include <float.h> #include <math.h> int main() { int i; volatile double x; /* Test on denormalized numbers. */ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) ; if (x > 0.0) { int exp; double y = frexp (x, &exp); /* On machines with IEEE754 arithmetic: x = 1.11254e-308, exp = -1022. On NetBSD: y = 0.75. Correct: y = 0.5. */ if (y != 0.5) return 1; } /* Test on infinite numbers. */ x = 1.0 / 0.0; { int exp; double y = frexp (x, &exp); if (y != x) return 1; } return 0; }], [gl_cv_func_frexp_works=yes], [gl_cv_func_frexp_works=no], [case "$host_os" in netbsd* | irix*) gl_cv_func_frexp_works="guessing no";; *) gl_cv_func_frexp_works="guessing yes";; esac ]) ]) ])