*** empty log message ***
[coreutils.git] / m4 / xstrtoumax.m4
blobf6e31996830cdc36e71105a00d7ea986068ed910
1 #serial 2
3 # autoconf tests required for use of xstrtoumax.c
5 AC_DEFUN(jm_AC_PREREQ_XSTRTOUMAX,
7   AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
8   AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
9   AC_CHECK_HEADERS(stdlib.h)
11   AC_CACHE_CHECK([whether <inttypes.h> defines strtoumax as a macro],
12     jm_cv_func_strtoumax_macro,
13     AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include <inttypes.h>
14 #ifdef strtoumax
15  inttypes_h_defines_strtoumax
16 #endif],
17       jm_cv_func_strtoumax_macro=yes,
18       jm_cv_func_strtoumax_macro=no))
20   if test "$jm_cv_func_strtoumax_macro" != yes; then
21     AC_REPLACE_FUNCS(strtoumax)
22   fi
24   dnl We don't need (and can't compile) the replacement strtoull
25   dnl unless the type `unsigned long long' exists.
26   dnl Also, only the replacement strtoumax invokes strtoull,
27   dnl so we need the replacement strtoull only if strtoumax does not exist.
28   case "$ac_cv_type_unsigned_long_long,$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in
29     yes,no,no)
30       AC_REPLACE_FUNCS(strtoull)
31       ;;
32   esac