# check-math-lib.m4
# serial 6
dnl Copyright (C) 2007, 2009-2025 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.
dnl This file is offered as-is, without any warranty.
dnl
dnl gl_CHECK_MATH_LIB (VARIABLE, TYPE, EXPRESSION [, EXTRA-CODE])
dnl
dnl Sets the shell VARIABLE according to the libraries needed by EXPRESSION
dnl (that operates on a variable x of type TYPE) to compile and link: to the
dnl empty string if no extra libraries are needed, to "-lm" if -lm is needed,
dnl or to "missing" if it does not compile and link either way.
dnl
dnl Example: gl_CHECK_MATH_LIB([ROUNDF_LIBM], [float], [x = roundf (x);])
AC_DEFUN([gl_CHECK_MATH_LIB], [
  saved_LIBS="$LIBS"
  $1=missing
  for libm in "" "-lm"; do
    LIBS="$saved_LIBS $libm"
    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
         #ifndef __NO_MATH_INLINES
         # define __NO_MATH_INLINES 1 /* for glibc */
         #endif
         #include <math.h>
         $4
         $2 x;]],
      [$3])],
      [$1=$libm
break])
  done
  LIBS="$saved_LIBS"
])
