summaryrefslogtreecommitdiff
path: root/Build/source/libs/mpfr/m4/mpfr-configs.m4
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/mpfr/m4/mpfr-configs.m4')
-rw-r--r--Build/source/libs/mpfr/m4/mpfr-configs.m4264
1 files changed, 0 insertions, 264 deletions
diff --git a/Build/source/libs/mpfr/m4/mpfr-configs.m4 b/Build/source/libs/mpfr/m4/mpfr-configs.m4
deleted file mode 100644
index 57ed1576be9..00000000000
--- a/Build/source/libs/mpfr/m4/mpfr-configs.m4
+++ /dev/null
@@ -1,264 +0,0 @@
-# Autoconf macros for the GNU MPFR Library.
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
-# Contributed by the AriC and Caramel projects, INRIA.
-#
-# Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org>
-# Extracted from mpfr-src/acinclude.m4 and adapted for TeX Live.
-#
-# This file is free software; the copyright holders
-# give unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-dnl ------------------------------------------------------------
-dnl You must put in MPFR_CONFIGS everything which configure MPFR
-dnl except:
-dnl -everything dealing with CC and CFLAGS in particular the ABI
-dnl but the IEEE-754 specific flags must be set here.
-dnl -GMP's linkage.
-dnl -Libtool stuff.
-dnl -Handling of special arguments of MPFR's configure.
-AC_DEFUN([MPFR_CONFIGS], [dnl
-AC_REQUIRE([AC_HEADER_TIME])
-AC_REQUIRE([AC_CANONICAL_HOST])
-
-dnl Check for wide characters (wchar_t and wint_t)
-AC_CHECK_HEADERS([wchar.h])
-
-dnl We have stdarg.h
-AC_DEFINE([HAVE_STDARG], 1, [Define if stdarg])
-
-AC_CHECK_HEADERS([sys/time.h])
-
-dnl Check how to get `alloca'
-AC_FUNC_ALLOCA
-
-KPSE_CHECK_SIZE_MAX
-
-dnl va_copy macro
-AC_MSG_CHECKING([how to copy va_list])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- va_copy(ap1, ap2);
-]])], [
- AC_MSG_RESULT([va_copy])
- AC_DEFINE([HAVE_VA_COPY], 1, [Define to 1 if you have the `va_copy' function.])
-], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
-#include <stdarg.h>
-]], [[
- va_list ap1, ap2;
- __va_copy(ap1, ap2);
-]])], [AC_DEFINE([HAVE___VA_COPY], 1, [Define to 1 if you have the `__va_copy' function.])
- AC_MSG_RESULT([__va_copy])],
- [AC_MSG_RESULT([memcpy])])])
-
-dnl Check for IEEE-754 switches on Alpha
-AS_CASE([$host],
- [alpha*-*-*], [
- AC_CACHE_CHECK([for IEEE-754 switches], [mpfr_cv_ieee_switches], [
- saved_CFLAGS=$CFLAGS
- if test -n "$GCC"; then
- mpfr_cv_ieee_switches="-mfp-rounding-mode=d -mieee-with-inexact"
- else
- mpfr_cv_ieee_switches="-fprm d -ieee_with_inexact"
- fi
- CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
- [], [mpfr_cv_ieee_switches=none])
- CFLAGS=$saved_CFLAGS
- ])
- test "x$mpfr_cv_ieee_switches" = xnone || CFLAGS="$CFLAGS $mpfr_cv_ieee_switches"
-])
-
-dnl check for long long
-AC_CHECK_TYPE([long long int],
- [AC_DEFINE([HAVE_LONG_LONG], 1, [Define if compiler supports long long])])
-
-dnl intmax_t is C99
-AC_CHECK_TYPES([intmax_t])
-if test "x$ac_cv_type_intmax_t" = xyes; then
- AC_CACHE_CHECK([for working INTMAX_MAX], [mpfr_cv_have_intmax_max], [
- saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$srcdir/mpfr-src/src"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "mpfr-intmax.h"]],
- [[intmax_t x = INTMAX_MAX;]])],
- [mpfr_cv_have_intmax_max=yes], [mpfr_cv_have_intmax_max=no])
- CPPFLAGS=$saved_CPPFLAGS
- ])
- if test "x$mpfr_cv_have_intmax_max" = xyes; then
- AC_DEFINE([MPFR_HAVE_INTMAX_MAX], 1, [Define if you have a working INTMAX_MAX.])
- fi
-fi
-
-KPSE_SEARCH_LIBS([MPFR_LIBM], [pow], [m])
-
-dnl Check for fesetround
-AC_CACHE_CHECK([for fesetround], [mpfr_cv_have_fesetround], [
-saved_LIBS=$LIBS
-LIBS="$LIBS $MPFR_LIBM"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <fenv.h>]], [[fesetround(FE_TONEAREST);]])],
- [mpfr_cv_have_fesetround=yes], [mpfr_cv_have_fesetround=no])
-LIBS=$saved_LIBS
-])
-if test "x$mpfr_cv_have_fesetround" = xyes; then
- AC_DEFINE([MPFR_HAVE_FESETROUND], 1,
- [Define if you have the `fesetround' function via the <fenv.h> header file.])
-fi
-
-dnl Check for gcc float-conversion bug; if need be, -ffloat-store is used to
-dnl force the conversion to the destination type when a value is stored to
-dnl a variable (see ISO C99 standard 5.1.2.3#13, 6.3.1.5#2, 6.3.1.8#2). This
-dnl is important concerning the exponent range. Note that this doesn't solve
-dnl the double-rounding problem.
-if test -n "$GCC"; then
- AC_CACHE_CHECK([for gcc float-conversion bug], [mpfr_cv_gcc_floatconv_bug], [
- saved_LIBS=$LIBS
- LIBS="$LIBS $MPFR_LIBM"
- AC_TRY_RUN([
-#include <float.h>
-#ifdef MPFR_HAVE_FESETROUND
-#include <fenv.h>
-#endif
-static double get_max (void);
-int main() {
- double x = 0.5;
- double y;
- int i;
- for (i = 1; i <= 11; i++)
- x *= x;
- if (x != 0)
- return 1;
-#ifdef MPFR_HAVE_FESETROUND
- /* Useful test for the G4 PowerPC */
- fesetround(FE_TOWARDZERO);
- x = y = get_max ();
- x *= 2.0;
- if (x != y)
- return 1;
-#endif
- return 0;
-}
-static double get_max (void) { static volatile double d = DBL_MAX; return d; }
- ], [mpfr_cv_gcc_floatconv_bug="no"],
- [mpfr_cv_gcc_floatconv_bug="yes, use -ffloat-store"],
- [mpfr_cv_gcc_floatconv_bug="cannot test, use -ffloat-store"])
- LIBS=$saved_LIBS
- ])
- test "x$mpfr_cv_gcc_floatconv_bug" = xno || CFLAGS="$CFLAGS -ffloat-store"
-fi
-
-dnl Check if denormalized numbers are supported
-AC_CACHE_CHECK([for denormalized numbers], [mpfr_cv_have_denorms], [
-AC_TRY_RUN([
-#include <math.h>
-#include <stdio.h>
-int main() {
- double x = 2.22507385850720138309e-308;
- fprintf (stderr, "%e\n", x / 2.0);
- return 2.0 * (x / 2.0) != x;
-}
-], [mpfr_cv_have_denorms=yes], [mpfr_cv_have_denorms=no], [mpfr_cv_have_denorms=no])
-])
-if test "x$mpfr_cv_have_denorms" = xyes; then
- AC_DEFINE([HAVE_DENORMS], 1, [Define if denormalized floats work.])
-fi
-
-dnl Check the FP division by 0 fails (e.g. on a non-IEEE-754 platform).
-dnl In such a case, MPFR_ERRDIVZERO is defined to disable the tests
-dnl involving a FP division by 0.
-dnl For the developers: to check whether all these tests are disabled,
-dnl configure MPFR with "-DMPFR_TEST_DIVBYZERO=1 -DMPFR_ERRDIVZERO=1".
-AC_CACHE_CHECK([if the FP division by 0 fails], [mpfr_cv_errdivzero], [
-AC_TRY_RUN([
-int main() {
- volatile double d = 0.0, x;
- x = 0.0 / d;
- x = 1.0 / d;
- return 0;
-}
-], [mpfr_cv_errdivzero="no"],
- [mpfr_cv_errdivzero="yes"],
- [mpfr_cv_errdivzero="cannot test, assume no"])
-])
-if test "x$mpfr_cv_errdivzero" = xyes; then
- AC_DEFINE([MPFR_ERRDIVZERO], 1, [Define if the FP division by 0 fails.])
- AC_MSG_WARN([The floating-point division by 0 fails instead of])
- AC_MSG_WARN([returning a special value: NaN or infinity. Tests])
- AC_MSG_WARN([involving a FP division by 0 will be disabled.])
-fi
-
-dnl Check whether NAN != NAN (as required by the IEEE-754 standard,
-dnl but not by the ISO C standard). For instance, this is false with
-dnl MIPSpro 7.3.1.3m under IRIX64. By default, assume this is true.
-AC_CACHE_CHECK([if NAN == NAN], [mpfr_cv_nanisnan], [
-AC_TRY_RUN([
-#include <stdio.h>
-#include <math.h>
-#ifndef NAN
-# define NAN (0.0/0.0)
-#endif
-int main() {
- double d;
- d = NAN;
- return d != d;
-}
-], [mpfr_cv_nanisnan="yes"],
- [mpfr_cv_nanisnan="no"],
- [mpfr_cv_nanisnan="cannot test, assume no"])
-])
-if test "x$mpfr_cv_nanisnan" = xyes; then
- AC_DEFINE([MPFR_NANISNAN], 1, [Define if NAN == NAN.])
- AC_MSG_WARN([The test NAN != NAN is false. The probable reason is that])
- AC_MSG_WARN([your compiler optimizes floating-point expressions in an])
- AC_MSG_WARN([unsafe way because some option, such as -ffast-math or])
- AC_MSG_WARN([-fast (depending on the compiler), has been used. You])
- AC_MSG_WARN([should NOT use such an option, otherwise MPFR functions])
- AC_MSG_WARN([such as mpfr_get_d and mpfr_set_d may return incorrect])
- AC_MSG_WARN([results on special FP numbers (e.g. NaN or signed zeros).])
- AC_MSG_WARN([If you did not use such an option, please send us a bug])
- AC_MSG_WARN([report so that we can try to find a workaround for your])
- AC_MSG_WARN([platform and/or document the behavior.])
-fi
-
-dnl Check if the chars '0' to '9' are consecutive values
-AC_MSG_CHECKING([if charset has consecutive values])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-char *number = "0123456789";
-char *lower = "abcdefghijklmnopqrstuvwxyz";
-char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-]],[[
- int i;
- unsigned char *p;
- for (p = (unsigned char*) number, i = 0; i < 9; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) lower, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
- for (p = (unsigned char*) upper, i = 0; i < 25; i++)
- if ( (*p)+1 != *(p+1) ) return 1;
-]])], [AC_MSG_RESULT([yes])],[
- AC_MSG_RESULT([no])
- AC_DEFINE([MPFR_NO_CONSECUTIVE_CHARSET], 1, [Charset is not consecutive])
-], [AC_MSG_RESULT([cannot test])])
-
-dnl Now try to check the long double format
-MPFR_C_LONG_DOUBLE_FORMAT
-
-])
-dnl end of MPFR_CONFIGS
-
-
-dnl MPFR_LD_SEARCH_PATHS_FIRST
-dnl --------------------------
-
-AC_DEFUN([MPFR_LD_SEARCH_PATHS_FIRST],
-[AS_CASE([$LDFLAGS],
- [*-Wl,-search_paths_first*], [],
- [AC_MSG_CHECKING([if the compiler understands -Wl,-search_paths_first])
- saved_LDFLAGS=$LDFLAGS
- LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- LDFLAGS=$saved_LDFLAGS])])
-])