File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / m4 / eilseq.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:57:49 2012 UTC (12 years, 4 months ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_16p0, v1_14p0, v1_14, v1_13_1, HEAD
libiconv

    1: #serial 1
    2: 
    3: AC_PREREQ(2.50)
    4: 
    5: # The EILSEQ errno value ought to be defined in <errno.h>, according to
    6: # ISO C 99 and POSIX.  But some systems (like SunOS 4) don't define it,
    7: # and some systems (like BSD/OS) define it in <wchar.h> not <errno.h>.
    8: 
    9: # Define EILSEQ as a C macro and as a substituted macro in such a way that
   10: # 1. on all systems, after inclusion of <errno.h>, EILSEQ is usable,
   11: # 2. on systems where EILSEQ is defined elsewhere, we use the same numeric
   12: #    value.
   13: 
   14: AC_DEFUN([AC_EILSEQ],
   15: [
   16:   AC_REQUIRE([AC_PROG_CC])dnl
   17: 
   18:   dnl Check for any extra headers that could define EILSEQ.
   19:   AC_CHECK_HEADERS(wchar.h)
   20: 
   21:   AC_CACHE_CHECK([for EILSEQ], ac_cv_decl_EILSEQ, [
   22:     AC_EGREP_CPP(yes,[
   23: #include <errno.h>
   24: #ifdef EILSEQ
   25: yes
   26: #endif
   27:       ], have_eilseq=1)
   28:     if test -n "$have_eilseq"; then
   29:       dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves.
   30:       ac_cv_decl_EILSEQ=yes
   31:     else
   32:       AC_EGREP_CPP(yes,[
   33: #include <errno.h>
   34: #if HAVE_WCHAR_H
   35: #include <wchar.h>
   36: #endif
   37: #ifdef EILSEQ
   38: yes
   39: #endif
   40:         ], have_eilseq=1)
   41:       if test -n "$have_eilseq"; then
   42:         dnl EILSEQ exists in some other system header.
   43:         dnl Define it to the same value.
   44:         _AC_COMPUTE_INT([EILSEQ], ac_cv_decl_EILSEQ, [
   45: #include <errno.h>
   46: #if HAVE_WCHAR_H
   47: #include <wchar.h>
   48: #endif
   49: /* The following two lines are a workaround against an autoconf-2.52 bug.  */
   50: #include <stdio.h>
   51: #include <stdlib.h>
   52: ])
   53:       else
   54:         dnl EILSEQ isn't defined by the system. Define EILSEQ ourselves, but
   55:         dnl don't define it as EINVAL, because iconv() callers want to
   56:         dnl distinguish EINVAL and EILSEQ.
   57:         ac_cv_decl_EILSEQ=ENOENT
   58:       fi
   59:     fi
   60:   ])
   61:   if test "$ac_cv_decl_EILSEQ" != yes; then
   62:     AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ],
   63:                        [Define as good substitute value for EILSEQ.])
   64:     EILSEQ="$ac_cv_decl_EILSEQ"
   65:     AC_SUBST(EILSEQ)
   66:   fi
   67: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>