diff options
author | Jim Meyering <jim@meyering.net> | 2001-08-26 07:06:48 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-08-26 07:06:48 +0000 |
commit | 585aa5fac918a7cae36333df3aa73a1adf7743e5 (patch) | |
tree | 6faf605b3675109a163bf6481a82d197ff9207bb /m4 | |
parent | a5a086c06ee63ca5e18ed2c231a8ea756fb8a59c (diff) | |
download | coreutils-585aa5fac918a7cae36333df3aa73a1adf7743e5.tar.xz |
*** empty log message ***
Diffstat (limited to 'm4')
-rw-r--r-- | m4/xstrtoimax.m4 | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/m4/xstrtoimax.m4 b/m4/xstrtoimax.m4 new file mode 100644 index 000000000..64da34e75 --- /dev/null +++ b/m4/xstrtoimax.m4 @@ -0,0 +1,42 @@ +#serial 1 + +# autoconf tests required for use of xstrtoimax.c + +AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX], +[ + AC_REQUIRE([jm_AC_TYPE_INTMAX_T]) + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) + AC_CHECK_DECLS([strtol, strtoll]) + AC_CHECK_HEADERS(limits.h stdlib.h) + + AC_CACHE_CHECK([whether <inttypes.h> defines strtoimax as a macro], + jm_cv_func_strtoimax_macro, + AC_EGREP_CPP([inttypes_h_defines_strtoimax], [#include <inttypes.h> +#ifdef strtoimax + inttypes_h_defines_strtoimax +#endif], + jm_cv_func_strtoimax_macro=yes, + jm_cv_func_strtoimax_macro=no)) + + if test "$jm_cv_func_strtoimax_macro" != yes; then + AC_REPLACE_FUNCS(strtoimax) + fi + + dnl We don't need (and can't compile) the replacement strtoll + dnl unless the type `long long' exists. + dnl Also, only the replacement strtoimax invokes strtoll, + dnl so we need the replacement strtoll only if strtoimax does not exist. + case "$ac_cv_type_long_long,$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in + yes,no,no) + AC_REPLACE_FUNCS(strtoll strtol) + ;; + esac + + case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in + no,no) + AC_REPLACE_FUNCS(strtoul strtol) + ;; + esac + +]) |