This adds 'frexpl' as a separate module from 'mathl' (since users of frexpl often don't need trigonometric functions).
2007-03-22 Bruno Haible <[EMAIL PROTECTED]> * modules/frexpl: New file. * m4/frexpl.m4: New file. * modules/math (Makefile.am): Also substitute GNULIB_FREXPL into math.h. * lib/math_.h (frexpl): Test GNULIB_FREXPL instead of GNULIB_MATHL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FREXPL. * modules/mathl (Files): Remove lib/frexpl.c, lib/frexp.c. (Depends-on): Add frexpl. Remove isnanl-nolibm. * m4/mathl.m4 (gl_FUNC_LONG_DOUBLE_MATH): Don't test for frexpl. ============================== modules/frexpl =============================== Description: frexpl() function: split a 'long double' into its constituents. Files: lib/frexpl.c lib/frexp.c m4/frexpl.m4 Depends-on: math isnanl-nolibm configure.ac: gl_FUNC_FREXPL gl_MATH_MODULE_INDICATOR([frexpl]) Makefile.am: Include: <math.h> License: LGPL Maintainer: Bruno Haible, Paolo Bonzini =============================== m4/frexpl.m4 ================================ # frexpl.m4 serial 1 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_FREXPL], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) FREXPL_LIBM= AC_CACHE_CHECK([whether frexpl() can be used without linking with libm], [gl_cv_func_frexpl_no_libm], [ AC_TRY_LINK([#include <math.h> long double x;], [int e; return frexpl (x, &e) > 0;], [gl_cv_func_frexpl_no_libm=yes], [gl_cv_func_frexpl_no_libm=no]) ]) if test $gl_cv_func_frexpl_no_libm = no; then AC_CACHE_CHECK([whether frexpl() can be used with libm], [gl_cv_func_frexpl_in_libm], [ save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_TRY_LINK([#include <math.h> long double x;], [int e; return frexpl (x, &e) > 0;], [gl_cv_func_frexpl_in_libm=yes], [gl_cv_func_frexpl_in_libm=no]) LIBS="$save_LIBS" ]) if test $gl_cv_func_frexpl_in_libm = yes; then FREXPL_LIBM=-lm fi fi if test $gl_cv_func_frexpl_no_libm = yes \ || test $gl_cv_func_frexpl_in_libm = yes; then AC_DEFINE([HAVE_FREXPL], 1, [Define if the frexpl() function is available.]) dnl Also check whether it's declared. dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>. AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>]) else AC_LIBOBJ([frexpl]) fi ]) ============================================================================= *** lib/math_.h 22 Mar 2007 03:59:38 -0000 1.4 --- lib/math_.h 23 Mar 2007 01:11:30 -0000 *************** *** 128,141 **** floorl (x)) #endif ! #if @GNULIB_MATHL@ || [EMAIL PROTECTED]@ extern long double frexpl (long double x, int *exp); #endif ! #if [EMAIL PROTECTED]@ && defined GNULIB_POSIXCHECK # undef frexpl # define frexpl(x,e) \ (GL_LINK_WARNING ("frexpl is unportable - " \ ! "use gnulib module mathl for portability"), \ frexpl (x, e)) #endif --- 128,148 ---- floorl (x)) #endif ! /* Write x as ! x = mantissa * 2^exp ! where ! If x finite and nonzero: 0.5 <= |mantissa| < 1.0. ! If x is zero: mantissa = x, exp = 0. ! If x is infinite or NaN: mantissa = x, exp unspecified. ! Store exp and return mantissa. */ ! #if @GNULIB_FREXPL@ || [EMAIL PROTECTED]@ extern long double frexpl (long double x, int *exp); #endif ! #if [EMAIL PROTECTED]@ || defined GNULIB_POSIXCHECK # undef frexpl # define frexpl(x,e) \ (GL_LINK_WARNING ("frexpl is unportable - " \ ! "use gnulib module frexpl for portability"), \ frexpl (x, e)) #endif *** m4/math_h.m4 22 Mar 2007 03:59:38 -0000 1.3 --- m4/math_h.m4 23 Mar 2007 01:11:30 -0000 *************** *** 21,28 **** AC_DEFUN([gl_MATH_H_DEFAULTS], [ ! GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP]) ! GNULIB_MATHL=0; AC_SUBST([GNULIB_MATHL]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) --- 21,29 ---- AC_DEFUN([gl_MATH_H_DEFAULTS], [ ! GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP]) ! GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL]) ! GNULIB_MATHL=0; AC_SUBST([GNULIB_MATHL]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL]) HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL]) *** m4/mathl.m4 23 Jan 2005 08:06:57 -0000 1.2 --- m4/mathl.m4 23 Mar 2007 01:11:30 -0000 *************** *** 1,5 **** ! # mathl.m4 serial 2 ! dnl Copyright (c) 2003 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. --- 1,5 ---- ! # mathl.m4 serial 3 ! dnl Copyright (c) 2003, 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. *************** *** 7,13 **** AC_DEFUN([gl_FUNC_LONG_DOUBLE_MATH], [ AC_CHECK_LIB(m, atan) ! AC_REPLACE_FUNCS(floorl ceill sqrtl frexpl ldexpl asinl acosl atanl \ logl expl tanl sinl cosl) ]) --- 7,13 ---- AC_DEFUN([gl_FUNC_LONG_DOUBLE_MATH], [ AC_CHECK_LIB(m, atan) ! AC_REPLACE_FUNCS(floorl ceill sqrtl ldexpl asinl acosl atanl \ logl expl tanl sinl cosl) ]) *** modules/math 22 Mar 2007 03:59:38 -0000 1.3 --- modules/math 23 Mar 2007 01:11:30 -0000 *************** *** 22,27 **** --- 22,28 ---- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''ABSOLUTE_MATH_H''@|$(ABSOLUTE_MATH_H)|g' \ -e 's|@''GNULIB_FREXP''@|$(GNULIB_FREXP)|g' \ + -e 's|@''GNULIB_FREXPL''@|$(GNULIB_FREXPL)|g' \ -e 's|@''GNULIB_MATHL''@|$(GNULIB_MATHL)|g' \ -e 's|@''HAVE_DECL_ACOSL''@|$(HAVE_DECL_ACOSL)|g' \ -e 's|@''HAVE_DECL_ASINL''@|$(HAVE_DECL_ASINL)|g' \ *** modules/mathl 22 Mar 2007 12:24:07 -0000 1.6 --- modules/mathl 23 Mar 2007 01:11:30 -0000 *************** *** 9,16 **** lib/cosl.c lib/expl.c lib/floorl.c - lib/frexpl.c - lib/frexp.c lib/ldexpl.c lib/logl.c lib/sincosl.c --- 9,14 ---- *************** *** 23,29 **** Depends-on: math ! isnanl-nolibm configure.ac: gl_FUNC_LONG_DOUBLE_MATH --- 21,27 ---- Depends-on: math ! frexpl configure.ac: gl_FUNC_LONG_DOUBLE_MATH