Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: bison/src/bison/2.4.1/bison-2.4.1-src/m4/inttypes.m4

Issue 10807020: Add native Windows binary for bison. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # inttypes.m4 serial 12
2 dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 dnl From Derek Price, Bruno Haible.
8 dnl Test whether <inttypes.h> is supported or must be substituted.
9
10 AC_DEFUN([gl_INTTYPES_H],
11 [
12 AC_REQUIRE([gl_STDINT_H])
13 AC_REQUIRE([gt_INTTYPES_PRI])
14 AC_CHECK_DECLS_ONCE([imaxabs])
15 AC_CHECK_DECLS_ONCE([imaxdiv])
16 AC_CHECK_DECLS_ONCE([strtoimax])
17 AC_CHECK_DECLS_ONCE([strtoumax])
18
19 dnl Now see if we need a substitute <inttypes.h>.
20 dnl A complete <inttypes.h> requires
21 dnl - a complete <stdint.h>,
22 dnl - the existence of an <inttypes.h>,
23 dnl - that imaxabs, imaxdiv, strtoimax, strtoumax are declared,
24 dnl - some additional tests.
25 AC_CACHE_CHECK([whether inttypes.h conforms to C99],
26 [gl_cv_header_working_inttypes_h],
27 [gl_cv_header_working_inttypes_h=no
28 if test "$gl_cv_header_working_stdint_h" = yes \
29 && test $ac_cv_header_inttypes_h = yes \
30 && test "$ac_cv_have_decl_imaxabs" = yes \
31 && test "$ac_cv_have_decl_imaxdiv" = yes \
32 && test "$ac_cv_have_decl_strtoimax" = yes \
33 && test "$ac_cv_have_decl_strtoumax" = yes; then
34 AC_COMPILE_IFELSE([
35 AC_LANG_PROGRAM([[
36 #include <stddef.h>
37 #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
38 #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
39 #define __STDC_FORMAT_MACROS 1 /* to make it work also in C++ mode */
40 #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* work if build isn't clean */
41 #include <inttypes.h>
42
43 /* No need to duplicate the tests of stdint.m4; they are subsumed by
44 $gl_cv_header_working_stdint_h = yes. */
45
46 /* Tests for macros supposed to be defined in inttypes.h. */
47
48 const char *k = /* implicit string concatenation */
49 #ifdef INT8_MAX
50 PRId8 PRIi8
51 #endif
52 #ifdef UINT8_MAX
53 PRIo8 PRIu8 PRIx8 PRIX8
54 #endif
55 #ifdef INT16_MAX
56 PRId16 PRIi16
57 #endif
58 #ifdef UINT16_MAX
59 PRIo16 PRIu16 PRIx16 PRIX16
60 #endif
61 #ifdef INT32_MAX
62 PRId32 PRIi32
63 #endif
64 #ifdef UINT32_MAX
65 PRIo32 PRIu32 PRIx32 PRIX32
66 #endif
67 #ifdef INT64_MAX
68 PRId64 PRIi64
69 #endif
70 #ifdef UINT64_MAX
71 PRIo64 PRIu64 PRIx64 PRIX64
72 #endif
73 PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8
74 PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16
75 PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32
76 PRIdLEAST64 PRIiLEAST64
77 PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64
78 PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8
79 PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16
80 PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32
81 PRIdFAST64 PRIiFAST64
82 PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64
83 PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX
84 #ifdef INTPTR_MAX
85 PRIdPTR PRIiPTR
86 #endif
87 #ifdef UINTPTR_MAX
88 PRIoPTR PRIuPTR PRIxPTR PRIXPTR
89 #endif
90 ;
91 const char *l = /* implicit string concatenation */
92 #ifdef INT8_MAX
93 SCNd8 SCNi8
94 #endif
95 #ifdef UINT8_MAX
96 SCNo8 SCNu8 SCNx8
97 #endif
98 #ifdef INT16_MAX
99 SCNd16 SCNi16
100 #endif
101 #ifdef UINT16_MAX
102 SCNo16 SCNu16 SCNx16
103 #endif
104 #ifdef INT32_MAX
105 SCNd32 SCNi32
106 #endif
107 #ifdef UINT32_MAX
108 SCNo32 SCNu32 SCNx32
109 #endif
110 #ifdef INT64_MAX
111 SCNd64 SCNi64
112 #endif
113 #ifdef UINT64_MAX
114 SCNo64 SCNu64 SCNx64
115 #endif
116 SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8
117 SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16
118 SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32
119 SCNdLEAST64 SCNiLEAST64
120 SCNoLEAST64 SCNuLEAST64 SCNxLEAST64
121 SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8
122 SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16
123 SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32
124 SCNdFAST64 SCNiFAST64
125 SCNoFAST64 SCNuFAST64 SCNxFAST64
126 SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX
127 #ifdef INTPTR_MAX
128 SCNdPTR SCNiPTR
129 #endif
130 #ifdef UINTPTR_MAX
131 SCNoPTR SCNuPTR SCNxPTR
132 #endif
133 ;
134 ]])],
135 [gl_cv_header_working_inttypes_h=yes])
136 fi])
137
138 dnl Override <inttypes.h> always, so that the portability warnings work.
139 if false && test $gl_cv_header_working_inttypes_h = yes; then
140 dnl Use the existing <inttypes.h>.
141 INTTYPES_H=''
142 else
143
144 AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
145 gl_CHECK_NEXT_HEADERS([inttypes.h])
146
147 dnl Ensure that <stdint.h> defines the limit macros, since gnulib's
148 dnl <inttypes.h> relies on them. This macro is only needed when a
149 dnl C++ compiler is in use; it has no effect for a C compiler.
150 dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's
151 dnl <inttypes.h> is going to be created, and to avoid redefinition warnings
152 dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS.
153 AC_DEFINE([GL_TRIGGER_STDC_LIMIT_MACROS], 1,
154 [Define to make the limit macros in <stdint.h> visible.])
155 AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ],
156 [/* Ensure that <stdint.h> defines the limit macros, since gnulib's
157 <inttypes.h> relies on them. */
158 #if defined __cplusplus && !defined __STDC_LIMIT_MACROS && GL_TRIGGER_STDC_LIMIT _MACROS
159 # define __STDC_LIMIT_MACROS 1
160 #endif
161 ])
162
163 PRIPTR_PREFIX=
164 if test -n "$STDINT_H"; then
165 dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.
166 PRIPTR_PREFIX='"l"'
167 else
168 dnl Using the system's <stdint.h>.
169 for glpfx in '' l ll I64; do
170 case $glpfx in
171 '') gltype1='int';;
172 l) gltype1='long int';;
173 ll) gltype1='long long int';;
174 I64) gltype1='__int64';;
175 esac
176 AC_COMPILE_IFELSE(
177 [AC_LANG_PROGRAM([[#include <stdint.h>
178 extern intptr_t foo;
179 extern $gltype1 foo;]])],
180 [PRIPTR_PREFIX='"'$glpfx'"'])
181 test -n "$PRIPTR_PREFIX" && break
182 done
183 fi
184 AC_SUBST([PRIPTR_PREFIX])
185
186 if test "$ac_cv_have_decl_imaxabs" = yes; then
187 HAVE_DECL_IMAXABS=1
188 else
189 HAVE_DECL_IMAXABS=0
190 fi
191
192 if test "$ac_cv_have_decl_imaxdiv" = yes; then
193 HAVE_DECL_IMAXDIV=1
194 else
195 HAVE_DECL_IMAXDIV=0
196 fi
197
198 if test "$ac_cv_have_decl_strtoimax" = yes; then
199 HAVE_DECL_STRTOIMAX=1
200 else
201 HAVE_DECL_STRTOIMAX=0
202 fi
203
204 if test "$ac_cv_have_decl_strtoumax" = yes; then
205 HAVE_DECL_STRTOUMAX=1
206 else
207 HAVE_DECL_STRTOUMAX=0
208 fi
209
210 gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
211 [INT32_MAX_LT_INTMAX_MAX],
212 [defined INT32_MAX && defined INTMAX_MAX],
213 [INT32_MAX < INTMAX_MAX],
214 [sizeof (int) < sizeof (long long int)])
215 gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
216 [INT64_MAX_EQ_LONG_MAX],
217 [defined INT64_MAX],
218 [INT64_MAX == LONG_MAX],
219 [sizeof (long long int) == sizeof (long int)])
220 gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
221 [UINT32_MAX_LT_UINTMAX_MAX],
222 [defined UINT32_MAX && defined UINTMAX_MAX],
223 [UINT32_MAX < UINTMAX_MAX],
224 [sizeof (unsigned int) < sizeof (unsigned long long int)])
225 gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION(
226 [UINT64_MAX_EQ_ULONG_MAX],
227 [defined UINT64_MAX],
228 [UINT64_MAX == ULONG_MAX],
229 [sizeof (unsigned long long int) == sizeof (unsigned long int)])
230
231 INTTYPES_H='inttypes.h'
232 fi
233 AC_SUBST(INTTYPES_H)
234 ])
235
236 # Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
237 # If $2 is true, the condition is $3; otherwise if long long int is supported
238 # approximate the condition with $4; otherwise, assume the condition is false.
239 # The condition should work on all C99 platforms; the approximations should be
240 # good enough to work on all practical pre-C99 platforms.
241 # $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants.
242 AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION],
243 [
244 AC_CACHE_CHECK([whether $3],
245 [gl_cv_test_$1],
246 [AC_COMPILE_IFELSE(
247 [AC_LANG_PROGRAM(
248 [[/* Work also in C++ mode. */
249 #define __STDC_LIMIT_MACROS 1
250
251 /* Work if build is not clean. */
252 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H
253
254 #include <limits.h>
255 #if HAVE_STDINT_H
256 #include <stdint.h>
257 #endif
258
259 #if $2
260 #define CONDITION ($3)
261 #elif HAVE_LONG_LONG_INT
262 #define CONDITION ($4)
263 #else
264 #define CONDITION 0
265 #endif
266 int test[CONDITION ? 1 : -1];]])],
267 [gl_cv_test_$1=yes],
268 [gl_cv_test_$1=no])])
269 if test $gl_cv_test_$1 = yes; then
270 $1=1;
271 else
272 $1=0;
273 fi
274 AC_SUBST([$1])
275 ])
276
277 AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
278 [
279 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
280 AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
281 GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRS TUVWXYZ___])=1
282 ])
283
284 AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
285 [
286 GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS])
287 GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV])
288 GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX])
289 GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX])
290 dnl Assume proper GNU behavior unless another module says otherwise.
291 HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS])
292 HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV])
293 HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
294 HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
295 ])
OLDNEW
« no previous file with comments | « bison/src/bison/2.4.1/bison-2.4.1-src/m4/intlmacosx.m4 ('k') | bison/src/bison/2.4.1/bison-2.4.1-src/m4/inttypes-pri.m4 » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698