You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

28 lines
1.1 KiB

dnl Tries to determine if the copysign function exists in std namespace,
dnl global namespace, or doesn't exist (in which case an appropriate
dnl macro is generated). The result is put into ax_cxx_copysign.
dnl
AC_DEFUN([AX_CXX_COPYSIGN], [
AC_MSG_CHECKING([for copysign])
AC_LANG_PUSH(C++)
ax_cxx_copysign=
AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <cmath>
int main() {
std::copysign(1.0, 1.0);
return 0;
}])],
[AC_MSG_RESULT(std::copysign)
ax_cxx_copysign="std::copysign(x, y)"])
if test "x$ax_cxx_copysign" = "x"; then
AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <cmath>
int main() {
::copysign(1.0, 1.0);
return 0;
}])],
[AC_MSG_RESULT(::copysign)
ax_cxx_copysign="::copysign(x, y)"],
[AC_MSG_RESULT(none)
ax_cxx_copysign="( ((y) != 0.0) ? ( ((y) > 0.0) ? (x) : -(x) ) : ( ((1.0 / y) > 0.0) ? (x) : -(x) ) )"])
fi
AC_LANG_POP(C++)
])