Home | History | Annotate | Line # | Download | only in m4
wint_t.m4 revision 1.1
      1 # wint_t.m4 serial 8
      2 dnl Copyright (C) 2003, 2007-2020 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 Bruno Haible.
      8 dnl Test whether <wchar.h> has the 'wint_t' type and whether gnulib's
      9 dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
     10 dnl Prerequisite: AC_PROG_CC
     11 
     12 AC_DEFUN([gt_TYPE_WINT_T],
     13 [
     14   AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
     15     [AC_COMPILE_IFELSE(
     16        [AC_LANG_PROGRAM(
     17           [[
     18 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
     19    <wchar.h>.
     20    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
     21    before <wchar.h>.  */
     22 #include <stddef.h>
     23 #include <stdio.h>
     24 #include <time.h>
     25 #include <wchar.h>
     26             wint_t foo = (wchar_t)'\0';]],
     27           [[]])],
     28        [gt_cv_c_wint_t=yes],
     29        [gt_cv_c_wint_t=no])])
     30   if test $gt_cv_c_wint_t = yes; then
     31     AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
     32 
     33     dnl Determine whether gnulib's <wchar.h> or <wctype.h> would, if present,
     34     dnl override 'wint_t'.
     35     AC_CACHE_CHECK([whether wint_t is too small],
     36       [gl_cv_type_wint_t_too_small],
     37       [AC_COMPILE_IFELSE(
     38          [AC_LANG_PROGRAM([[
     39 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
     40    <wchar.h>.
     41    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
     42    included before <wchar.h>.  */
     43 #if !(defined __GLIBC__ && !defined __UCLIBC__)
     44 # include <stddef.h>
     45 # include <stdio.h>
     46 # include <time.h>
     47 #endif
     48 #include <wchar.h>
     49             int verify[sizeof (wint_t) < sizeof (int) ? -1 : 1];
     50             ]])],
     51          [gl_cv_type_wint_t_too_small=no],
     52          [gl_cv_type_wint_t_too_small=yes])])
     53     if test $gl_cv_type_wint_t_too_small = yes; then
     54       GNULIB_OVERRIDES_WINT_T=1
     55     else
     56       GNULIB_OVERRIDES_WINT_T=0
     57     fi
     58   else
     59     GNULIB_OVERRIDES_WINT_T=0
     60   fi
     61   AC_SUBST([GNULIB_OVERRIDES_WINT_T])
     62 ])
     63 
     64 dnl Prerequisites of the 'wint_t' override.
     65 AC_DEFUN([gl_TYPE_WINT_T_PREREQ],
     66 [
     67   AC_CHECK_HEADERS_ONCE([crtdefs.h])
     68   if test $ac_cv_header_crtdefs_h = yes; then
     69     HAVE_CRTDEFS_H=1
     70   else
     71     HAVE_CRTDEFS_H=0
     72   fi
     73   AC_SUBST([HAVE_CRTDEFS_H])
     74 ])
     75