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