Skip to content
Newer
Older
100644 453 lines (384 sloc) 14 KB
39e4c5a The following patch corrects some function attributes. (#61780)
Matthias Clasen authored Dec 6, 2001
1 dnl @synopsis AC_FUNC_VSNPRINTF_C99
2 dnl
3 dnl Check whether there is a vsnprintf() function with C99 semantics installed.
4 dnl
5 AC_DEFUN([AC_FUNC_VSNPRINTF_C99],
6 [AC_CACHE_CHECK(for C99 vsnprintf,
7 ac_cv_func_vsnprintf_c99,
8 [AC_TRY_RUN(
9 [#include <stdio.h>
10 #include <stdarg.h>
11
12 int
13 doit(char * s, ...)
14 {
15 char buffer[32];
16 va_list args;
17 int r;
18
19 va_start(args, s);
20 r = vsnprintf(buffer, 5, s, args);
21 va_end(args);
22
23 if (r != 7)
24 exit(1);
25
9a76ff1 Make the various printf feature test macros reflect the system printf,
Matthias Clasen authored Oct 4, 2003
26 /* AIX 5.1 and Solaris seems to have a half-baked vsnprintf()
27 implementation. The above will return 7 but if you replace
28 the size of the buffer with 0, it borks! */
29 va_start(args, s);
30 r = vsnprintf(buffer, 0, s, args);
31 va_end(args);
32
33 if (r != 7)
34 exit(1);
35
39e4c5a The following patch corrects some function attributes. (#61780)
Matthias Clasen authored Dec 6, 2001
36 exit(0);
37 }
38
39 int
40 main(void)
41 {
42 doit("1234567");
43 exit(1);
44 }], ac_cv_func_vsnprintf_c99=yes, ac_cv_func_vsnprintf_c99=no, ac_cv_func_vsnprintf_c99=no)])
45 dnl Note that the default is to be pessimistic in the case of cross compilation.
46 dnl If you know that the target has a C99 vsnprintf(), you can get around this
47 dnl by setting ac_func_vsnprintf_c99 to yes, as described in the Autoconf manual.
48 if test $ac_cv_func_vsnprintf_c99 = yes; then
49 AC_DEFINE(HAVE_C99_VSNPRINTF, 1,
50 [Define if you have a version of the vsnprintf function
51 with semantics as specified by the ISO C99 standard.])
52 fi
53 ])# AC_FUNC_VSNPRINTF_C99
54
bc54ea6 Include a printf implementation supporting C99 snprintf and SUS
Matthias Clasen authored Nov 21, 2002
55
3c51de6 Integrate gnulib vasnprintf().
Matthias Clasen authored Jul 28, 2003
56 dnl @synopsis AC_FUNC_SNPRINTF_C99
57 dnl
58 dnl Check whether there is a snprintf() function with C99 semantics installed.
59 dnl
60 AC_DEFUN([AC_FUNC_SNPRINTF_C99],
61 [AC_CACHE_CHECK(for C99 snprintf,
62 ac_cv_func_snprintf_c99,
63 [AC_TRY_RUN(
64 [#include <stdio.h>
65 #include <stdarg.h>
66
67 int
68 doit()
69 {
70 char buffer[32];
71 va_list args;
72 int r;
73
74 r = snprintf(buffer, 5, "1234567");
75
76 if (r != 7)
77 exit(1);
78
4d29219 Tighten the snprintf() test to check behaviour on zero-size buffers.
Matthias Clasen authored Aug 7, 2003
79 r = snprintf(buffer, 0, "1234567");
80
81 if (r != 7)
82 exit(1);
83
84 r = snprintf(NULL, 0, "1234567");
85
86 if (r != 7)
87 exit(1);
88
3c51de6 Integrate gnulib vasnprintf().
Matthias Clasen authored Jul 28, 2003
89 exit(0);
90 }
91
92 int
93 main(void)
94 {
95 doit();
96 exit(1);
97 }], ac_cv_func_snprintf_c99=yes, ac_cv_func_snprintf_c99=no, ac_cv_func_snprintf_c99=no)])
98 dnl Note that the default is to be pessimistic in the case of cross compilation.
99 dnl If you know that the target has a C99 snprintf(), you can get around this
100 dnl by setting ac_func_snprintf_c99 to yes, as described in the Autoconf manual.
101 if test $ac_cv_func_snprintf_c99 = yes; then
102 AC_DEFINE(HAVE_C99_SNPRINTF, 1,
103 [Define if you have a version of the snprintf function
104 with semantics as specified by the ISO C99 standard.])
105 fi
106 ])# AC_FUNC_SNPRINTF_C99
107
108
bc54ea6 Include a printf implementation supporting C99 snprintf and SUS
Matthias Clasen authored Nov 21, 2002
109 dnl @synopsis AC_FUNC_PRINTF_UNIX98
110 dnl
111 dnl Check whether the printf() family supports Unix98 %n$ positional parameters
112 dnl
113 AC_DEFUN([AC_FUNC_PRINTF_UNIX98],
114 [AC_CACHE_CHECK(whether printf supports positional parameters,
115 ac_cv_func_printf_unix98,
116 [AC_TRY_RUN(
117 [#include <stdio.h>
118
119 int
120 main (void)
121 {
122 char buffer[128];
123
124 sprintf (buffer, "%2\$d %3\$d %1\$d", 1, 2, 3);
125 if (strcmp ("2 3 1", buffer) == 0)
126 exit (0);
127 exit (1);
128 }], ac_cv_func_printf_unix98=yes, ac_cv_func_printf_unix98=no, ac_cv_func_printf_unix98=no)])
129 dnl Note that the default is to be pessimistic in the case of cross compilation.
130 dnl If you know that the target printf() supports positional parameters, you can get around
131 dnl this by setting ac_func_printf_unix98 to yes, as described in the Autoconf manual.
132 if test $ac_cv_func_printf_unix98 = yes; then
133 AC_DEFINE(HAVE_UNIX98_PRINTF, 1,
134 [Define if your printf function family supports positional parameters
135 as specified by Unix98.])
136 fi
137 ])# AC_FUNC_PRINTF_UNIX98
138
79bdb0d Copy newer versions of JH_CHECK_XML_CATALOG and JH_PATH_XML_CATALOG from
Matthias Clasen authored Aug 10, 2003
139 # Checks the location of the XML Catalog
140 # Usage:
141 # JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
142 # Defines XMLCATALOG and XML_CATALOG_FILE substitutions
143 AC_DEFUN([JH_PATH_XML_CATALOG],
144 [
145 # check for the presence of the XML catalog
146 AC_ARG_WITH([xml-catalog],
147 AC_HELP_STRING([--with-xml-catalog=CATALOG],
148 [path to xml catalog to use]),,
149 [with_xml_catalog=/etc/xml/catalog])
150 jh_found_xmlcatalog=true
151 XML_CATALOG_FILE="$with_xml_catalog"
152 AC_SUBST([XML_CATALOG_FILE])
153 AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)])
154 if test -f "$XML_CATALOG_FILE"; then
155 AC_MSG_RESULT([found])
156 else
157 jh_found_xmlcatalog=false
158 AC_MSG_RESULT([not found])
159 fi
160
161 # check for the xmlcatalog program
162 AC_PATH_PROG(XMLCATALOG, xmlcatalog, no)
163 if test "x$XMLCATALOG" = xno; then
164 jh_found_xmlcatalog=false
165 fi
166
167 if $jh_found_xmlcatalog; then
168 ifelse([$1],,[:],[$1])
169 else
170 ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2])
171 fi
172 ])
173
54f796b New macros to check for XML catalog contents and path, borrowed from
Matthias Clasen authored Jun 17, 2003
174 # Checks if a particular URI appears in the XML catalog
175 # Usage:
176 # JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
177 AC_DEFUN([JH_CHECK_XML_CATALOG],
178 [
79bdb0d Copy newer versions of JH_CHECK_XML_CATALOG and JH_PATH_XML_CATALOG from
Matthias Clasen authored Aug 10, 2003
179 AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
54f796b New macros to check for XML catalog contents and path, borrowed from
Matthias Clasen authored Jun 17, 2003
180 AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
79bdb0d Copy newer versions of JH_CHECK_XML_CATALOG and JH_PATH_XML_CATALOG from
Matthias Clasen authored Aug 10, 2003
181 if $jh_found_xmlcatalog && \
182 AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
54f796b New macros to check for XML catalog contents and path, borrowed from
Matthias Clasen authored Jun 17, 2003
183 AC_MSG_RESULT([found])
184 ifelse([$3],,,[$3
185 ])dnl
186 else
187 AC_MSG_RESULT([not found])
188 ifelse([$4],,
189 [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
190 [$4])
191 fi
192 ])
bc54ea6 Include a printf implementation supporting C99 snprintf and SUS
Matthias Clasen authored Nov 21, 2002
193
194
3c51de6 Integrate gnulib vasnprintf().
Matthias Clasen authored Jul 28, 2003
195 # signed.m4 serial 1 (gettext-0.10.40)
196 dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
197 dnl This file is free software, distributed under the terms of the GNU
198 dnl General Public License. As a special exception to the GNU General
199 dnl Public License, this file may be distributed as part of a program
200 dnl that contains a configuration script generated by Autoconf, under
201 dnl the same distribution terms as the rest of that program.
202
203 dnl From Bruno Haible.
204
205 AC_DEFUN([bh_C_SIGNED],
206 [
207 AC_CACHE_CHECK([for signed], bh_cv_c_signed,
208 [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
209 if test $bh_cv_c_signed = no; then
210 AC_DEFINE(signed, ,
211 [Define to empty if the C compiler doesn't support this keyword.])
212 fi
213 ])
214
215
216 # longlong.m4 serial 4
217 dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
218 dnl This file is free software, distributed under the terms of the GNU
219 dnl General Public License. As a special exception to the GNU General
220 dnl Public License, this file may be distributed as part of a program
221 dnl that contains a configuration script generated by Autoconf, under
222 dnl the same distribution terms as the rest of that program.
223
224 dnl From Paul Eggert.
225
226 # Define HAVE_LONG_LONG if 'long long' works.
227
228 AC_DEFUN([jm_AC_TYPE_LONG_LONG],
229 [
230 AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
231 [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
232 [long long llmax = (long long) -1;
233 return ll << i | ll >> i | llmax / ll | llmax % ll;],
234 ac_cv_type_long_long=yes,
235 ac_cv_type_long_long=no)])
236 if test $ac_cv_type_long_long = yes; then
237 AC_DEFINE(HAVE_LONG_LONG, 1,
238 [Define if you have the 'long long' type.])
239 fi
240 ])
241
242
243 # longdouble.m4 serial 1 (gettext-0.11.6)
244 dnl Copyright (C) 2002 Free Software Foundation, Inc.
245 dnl This file is free software, distributed under the terms of the GNU
246 dnl General Public License. As a special exception to the GNU General
247 dnl Public License, this file may be distributed as part of a program
248 dnl that contains a configuration script generated by Autoconf, under
249 dnl the same distribution terms as the rest of that program.
250
251 dnl From Bruno Haible.
252 dnl Test whether the compiler supports the 'long double' type.
253 dnl Prerequisite: AC_PROG_CC
254
255 AC_DEFUN([gt_TYPE_LONGDOUBLE],
256 [
257 AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
258 [if test "$GCC" = yes; then
259 gt_cv_c_long_double=yes
260 else
261 AC_TRY_COMPILE([
262 /* The Stardent Vistra knows sizeof(long double), but does not support it. */
263 long double foo = 0.0;
264 /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
265 int array [2*(sizeof(long double) >= sizeof(double)) - 1];
266 ], ,
267 gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
268 fi])
269 if test $gt_cv_c_long_double = yes; then
270 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
271 fi
272 ])
273
274
275
276 # wchar_t.m4 serial 1 (gettext-0.11.6)
277 dnl Copyright (C) 2002 Free Software Foundation, Inc.
278 dnl This file is free software, distributed under the terms of the GNU
279 dnl General Public License. As a special exception to the GNU General
280 dnl Public License, this file may be distributed as part of a program
281 dnl that contains a configuration script generated by Autoconf, under
282 dnl the same distribution terms as the rest of that program.
283
284 dnl From Bruno Haible.
285 dnl Test whether <stddef.h> has the 'wchar_t' type.
286 dnl Prerequisite: AC_PROG_CC
287
288 AC_DEFUN([gt_TYPE_WCHAR_T],
289 [
290 AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
291 [AC_TRY_COMPILE([#include <stddef.h>
292 wchar_t foo = (wchar_t)'\0';], ,
293 gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
294 if test $gt_cv_c_wchar_t = yes; then
295 AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
296 fi
297 ])
298
299
300 # wint_t.m4 serial 1
301 dnl Copyright (C) 2003 Free Software Foundation, Inc.
302 dnl This file is free software, distributed under the terms of the GNU
303 dnl General Public License. As a special exception to the GNU General
304 dnl Public License, this file may be distributed as part of a program
305 dnl that contains a configuration script generated by Autoconf, under
306 dnl the same distribution terms as the rest of that program.
307
308 dnl From Bruno Haible.
309 dnl Test whether <wchar.h> has the 'wint_t' type.
310 dnl Prerequisite: AC_PROG_CC
311
312 AC_DEFUN([gt_TYPE_WINT_T],
313 [
314 AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
315 [AC_TRY_COMPILE([#include <wchar.h>
316 wint_t foo = (wchar_t)'\0';], ,
317 gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
318 if test $gt_cv_c_wint_t = yes; then
319 AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
320 fi
321 ])
322
323
324 # intmax_t.m4 serial 1
325 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
326 dnl This file is free software, distributed under the terms of the GNU
327 dnl General Public License. As a special exception to the GNU General
328 dnl Public License, this file may be distributed as part of a program
329 dnl that contains a configuration script generated by Autoconf, under
330 dnl the same distribution terms as the rest of that program.
331
332 dnl From Paul Eggert.
333
334 AC_PREREQ(2.13)
335
336 # Define intmax_t to 'long' or 'long long'
337 # if it is not already defined in <stdint.h> or <inttypes.h>.
338
339 AC_DEFUN([jm_AC_TYPE_INTMAX_T],
340 [
341 dnl For simplicity, we assume that a header file defines 'intmax_t' if and
342 dnl only if it defines 'uintmax_t'.
343 AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
344 AC_REQUIRE([jm_AC_HEADER_STDINT_H])
345 if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
346 AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
347 test $ac_cv_type_long_long = yes \
348 && ac_type='long long' \
349 || ac_type='long'
350 AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
351 [Define to long or long long if <inttypes.h> and <stdint.h> don't define.])
352 else
353 AC_DEFINE(HAVE_INTMAX_T, 1,
354 [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
355 fi
356 ])
357
358 dnl An alternative would be to explicitly test for 'intmax_t'.
359
360 AC_DEFUN([gt_AC_TYPE_INTMAX_T],
361 [
362 AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
363 AC_REQUIRE([jm_AC_HEADER_STDINT_H])
364 AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
365 [AC_TRY_COMPILE([
366 #include <stddef.h>
367 #include <stdlib.h>
368 #if HAVE_STDINT_H_WITH_UINTMAX
369 #include <stdint.h>
370 #endif
371 #if HAVE_INTTYPES_H_WITH_UINTMAX
372 #include <inttypes.h>
373 #endif
374 ], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
375 if test $gt_cv_c_intmax_t = yes; then
376 AC_DEFINE(HAVE_INTMAX_T, 1,
377 [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
378 else
379 AC_REQUIRE([jm_AC_TYPE_LONG_LONG])
380 test $ac_cv_type_long_long = yes \
381 && ac_type='long long' \
382 || ac_type='long'
383 AC_DEFINE_UNQUOTED(intmax_t, $ac_type,
384 [Define to long or long long if <stdint.h> and <inttypes.h> don't define.])
385 fi
386 ])
387
388
389 # stdint_h.m4 serial 3 (gettext-0.11.6)
390 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
391 dnl This file is free software, distributed under the terms of the GNU
392 dnl General Public License. As a special exception to the GNU General
393 dnl Public License, this file may be distributed as part of a program
394 dnl that contains a configuration script generated by Autoconf, under
395 dnl the same distribution terms as the rest of that program.
396
397 dnl From Paul Eggert.
398
399 # Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
400 # doesn't clash with <sys/types.h>, and declares uintmax_t.
401
402 AC_DEFUN([jm_AC_HEADER_STDINT_H],
403 [
404 AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
405 [AC_TRY_COMPILE(
406 [#include <sys/types.h>
407 #include <stdint.h>],
408 [uintmax_t i = (uintmax_t) -1;],
409 jm_ac_cv_header_stdint_h=yes,
410 jm_ac_cv_header_stdint_h=no)])
411 if test $jm_ac_cv_header_stdint_h = yes; then
412 AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
413 [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
414 and declares uintmax_t. ])
415 fi
416 ])
417
418
419 # inttypes_h.m4 serial 5 (gettext-0.11.6)
420 dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
421 dnl This file is free software, distributed under the terms of the GNU
422 dnl General Public License. As a special exception to the GNU General
423 dnl Public License, this file may be distributed as part of a program
424 dnl that contains a configuration script generated by Autoconf, under
425 dnl the same distribution terms as the rest of that program.
426
427 dnl From Paul Eggert.
428
429 # Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
430 # doesn't clash with <sys/types.h>, and declares uintmax_t.
431
432 AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
433 [
434 AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
435 [AC_TRY_COMPILE(
436 [#include <sys/types.h>
437 #include <inttypes.h>],
438 [uintmax_t i = (uintmax_t) -1;],
439 jm_ac_cv_header_inttypes_h=yes,
440 jm_ac_cv_header_inttypes_h=no)])
441 if test $jm_ac_cv_header_inttypes_h = yes; then
442 AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
443 [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
444 and declares uintmax_t. ])
445 fi
446 ])
447
bc54ea6 Include a printf implementation supporting C99 snprintf and SUS
Matthias Clasen authored Nov 21, 2002
448
10de399 Move some inter-*.m4 includes from configure.in to acinclude.m4 to avoid
Matthias Clasen authored Nov 8, 2007
449 m4_include(acglib.m4)dnl
450 m4_include(glib/libcharset/codeset.m4)dnl
451 m4_include(glib/libcharset/glibc21.m4)dnl
452 m4_include(m4macros/glib-gettext.m4)dnl
Something went wrong with that request. Please try again.