1dnl Check whether limits.h has needed features.
2
3dnl Copyright 2016-2020 Free Software Foundation, Inc.
4dnl This file is free software; the Free Software Foundation
5dnl gives unlimited permission to copy and/or distribute it,
6dnl with or without modifications, as long as this notice is preserved.
7
8dnl From Paul Eggert.
9
10AC_DEFUN_ONCE([gl_LIMITS_H],
11[
12  gl_CHECK_NEXT_HEADERS([limits.h])
13
14  AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.],
15    [gl_cv_header_limits_width],
16    [AC_COMPILE_IFELSE(
17       [AC_LANG_PROGRAM(
18          [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
19             #define __STDC_WANT_IEC_60559_BFP_EXT__ 1
20            #endif
21            #include <limits.h>
22            long long llm = LLONG_MAX;
23            int wb = WORD_BIT;
24            int ullw = ULLONG_WIDTH;
25          ]])],
26       [gl_cv_header_limits_width=yes],
27       [gl_cv_header_limits_width=no])])
28  if test "$gl_cv_header_limits_width" = yes; then
29    LIMITS_H=
30  else
31    LIMITS_H=limits.h
32  fi
33  AC_SUBST([LIMITS_H])
34  AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
35])
36
37dnl Unconditionally enables the replacement of <limits.h>.
38AC_DEFUN([gl_REPLACE_LIMITS_H],
39[
40  AC_REQUIRE([gl_LIMITS_H])
41  LIMITS_H='limits.h'
42  AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"])
43])
44