config:
[deliverable/binutils-gdb.git] / config / stdint.m4
1 AC_DEFUN([GCC_STDINT_TYPES],
2 [AC_REQUIRE([AC_TYPE_INT8_T])
3 AC_REQUIRE([AC_TYPE_INT16_T])
4 AC_REQUIRE([AC_TYPE_INT32_T])
5 AC_REQUIRE([AC_TYPE_INT64_T])
6 AC_REQUIRE([AC_TYPE_INTMAX_T])
7 AC_REQUIRE([AC_TYPE_INTPTR_T])
8 AC_REQUIRE([AC_TYPE_UINT8_T])
9 AC_REQUIRE([AC_TYPE_UINT16_T])
10 AC_REQUIRE([AC_TYPE_UINT32_T])
11 AC_REQUIRE([AC_TYPE_UINT64_T])
12 AC_REQUIRE([AC_TYPE_UINTMAX_T])
13 AC_REQUIRE([AC_TYPE_UINTPTR_T])])
14
15 AC_DEFUN([GCC_HEADER_STDINT],
16 [AC_REQUIRE([GCC_STDINT_TYPES])
17 AC_CHECK_TYPES([int_least32_t, int_fast32_t],,,[#include <sys/types.h>
18 #ifdef HAVE_STDINT_H
19 #include <stdint.h>
20 #endif
21 #ifdef HAVE_INTTYPES_H
22 #include <inttypes.h>
23 #endif])
24
25 m4_define([_GCC_STDINT_H], m4_ifval($1, $1, _stdint.h))
26 m4_if(m4_bmatch(m4_quote(/_GCC_STDINT_H),
27 /stdint\.h$, bad,
28 /inttypes\.h$, bad, ok), bad,
29 [m4_fatal([cannot overwrite ]m4_quote(_GCC_STDINT_H))])
30
31 AC_CONFIG_COMMANDS(_GCC_STDINT_H, [
32 cat > $tmp/_GCC_STDINT_H <<EOF
33 #ifndef GCC_GENERATED_STDINT_H
34 #define GCC_GENERATED_STDINT_H 1
35
36 #include "config.h"
37 #include <sys/types.h>
38 #ifdef HAVE_STDINT_H
39 #include <stdint.h>
40 #endif
41 #ifdef HAVE_INTTYPES_H
42 #include <inttypes.h>
43 #endif
44 EOF
45
46 if test "$ac_cv_type_int_least32_t" != yes; then
47 sed 's/^ *//' >> $tmp/_GCC_STDINT_H <<EOF
48
49 /* Define int_least types */
50 typedef int8_t int_least8_t;
51 typedef int16_t int_least16_t;
52 typedef int32_t int_least32_t;
53 typedef int64_t int_least64_t;
54
55 typedef uint8_t uint_least8_t;
56 typedef uint16_t uint_least16_t;
57 typedef uint32_t uint_least32_t;
58 typedef uint64_t uint_least64_t;
59 EOF
60 fi
61
62 if test "$ac_cv_type_int_fast32_t" != yes; then
63 dnl NOTE: The following code assumes that sizeof (int) > 1.
64 dnl Fix when strange machines are reported.
65 sed 's/^ *//' >> $tmp/_GCC_STDINT_H <<EOF
66
67 /* Define int_fast types. short is often slow */
68 typedef int8_t int_fast8_t;
69 typedef int int_fast16_t;
70 typedef int32_t int_fast32_t;
71 typedef int64_t int_fast64_t;
72
73 typedef uint8_t uint_fast8_t;
74 typedef unsigned int uint_fast16_t;
75 typedef uint32_t uint_fast32_t;
76 typedef uint64_t uint_fast64_t;
77 EOF
78 fi
79
80 echo '@%:@endif /* GCC_GENERATED_STDINT_H */' >> $tmp/_GCC_STDINT_H
81
82 if test -r _GCC_STDINT_H && cmp -s $tmp/_GCC_STDINT_H _GCC_STDINT_H; then
83 rm -f $tmp/_GCC_STDINT_H
84 else
85 mv -f $tmp/_GCC_STDINT_H _GCC_STDINT_H
86 fi
87
88 ], [
89 ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t"
90 ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
91 ])
92
93 ])
This page took 0.034106 seconds and 5 git commands to generate.