/* common/icucfg.h.in.  Generated automatically from configure.in by autoheader.  */

/* Define if you have the ANSI C header files.  */
#undef STDC_HEADERS

/* Define if your processor stores words with the most significant
   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
#undef WORDS_BIGENDIAN

/* Copyright (c) 1999-2000, International Business Machines Corporation and
   others. All Rights Reserved. */
/* Define to signed char if not in <sys/types.h> */
#undef int8_t

/* Define to unsigned char if not in <sys/types.h> */
#undef uint8_t 

/* Define to signed short if not in <sys/types.h> */
#undef int16_t 

/* Define to unsigned short if not in <sys/types.h> */
#undef uint16_t 

/* Define to signed long if not in <sys/types.h> */
#undef int32_t 

/* Define to unsigned long if not in <sys/types.h> */
#undef uint32_t 

/* Define to signed char if not in <sys/types.h> */
#undef bool_t 

/* The number of bytes in a wchar_t.  */
#undef SIZEOF_WCHAR_T

/* Define if you have the <inttypes.h> header file.  */
#undef HAVE_INTTYPES_H

/* Define if you have the cma library (-lcma).  */
#undef HAVE_LIBCMA

/* Define if you have the dl library (-ldl).  */
#undef HAVE_LIBDL

/* Define if you have the dld library (-ldld).  */
#undef HAVE_LIBDLD

/* Define if you have the m library (-lm).  */
#undef HAVE_LIBM

/* Define if you have the pthread library (-lpthread).  */
#undef HAVE_LIBPTHREAD

/* Define if you have the pthreads library (-lpthreads).  */
#undef HAVE_LIBPTHREADS

/* Define if you have the wcs library (-lwcs).  */
#undef HAVE_LIBWCS
