/* Define to 1 if you have the <ansidecl.h> header file. */
#undef HAVE_ANSIDECL_H

/* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H        1

/* Define to 1 if you have the <arpa/nameser.h> header file. */
#define HAVE_ARPA_NAMESER_H     1

/* Whether struct sockaddr::__ss_family exists */
#undef HAVE_BROKEN_SS_FAMILY

/* Define to 1 if you have the `class' function. */
#undef HAVE_CLASS

/* Define to 1 if you have the <ctype.h> header file. */
#define HAVE_CTYPE_H            1

/* Define to 1 if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H           1

/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H            1       /* Locally emulated. */

/* Have dlopen based dso */
#define HAVE_DLOPEN             1       /* Locally emulated. */

/* Define to 1 if you have the <dl.h> header file. */
#undef HAVE_DL_H

/* Define to 1 if you have the <errno.h> header file. */
#define HAVE_ERRNO_H            1

/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H            1

/* Define to 1 if you have the `finite' function. */
#undef HAVE_FINITE

/* Define to 1 if you have the <float.h> header file. */
#define HAVE_FLOAT_H            1

/* Define to 1 if you have the `fpclass' function. */
#undef HAVE_FPCLASS

/* Define to 1 if you have the `fprintf' function. */
#undef HAVE_FPRINTF                     /* Use trio. */

/* Define to 1 if you have the `fp_class' function. */
#undef HAVE_FP_CLASS

/* Define to 1 if you have the <fp_class.h> header file. */
#undef HAVE_FP_CLASS_H

/* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME

/* Define if getaddrinfo is there */
#define HAVE_GETADDRINFO        1

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Define to 1 if you have the <ieeefp.h> header file. */
#undef HAVE_IEEEFP_H

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

/* Define to 1 if you have the `isascii' function. */
#define HAVE_ISASCII            1

/* Define if isinf is there */
#undef HAVE_ISINF

/* Define if isnan is there */
#undef HAVE_ISNAN

/* Define to 1 if you have the `isnand' function. */
#undef HAVE_ISNAND

/* Define if history library is there (-lhistory) */
#undef HAVE_LIBHISTORY

/* Have compression library */
#undef HAVE_LIBLZMA

/* Define if pthread library is there (-lpthread) */
#undef HAVE_LIBPTHREAD

/* Define if readline library is there (-lreadline) */
#undef HAVE_LIBREADLINE

/* Have compression library */
#undef HAVE_LIBZ

/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H           1

/* Define to 1 if you have the `localtime' function. */
#define HAVE_LOCALTIME          1

/* Define to 1 if you have the <lzma.h> header file. */
#undef HAVE_LZMA_H

/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H

/* Define to 1 if you have the <math.h> header file. */
#define HAVE_MATH_H             1

/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H           1

/* Define to 1 if you have the `mmap' function. */
#undef HAVE_MMAP

/* Define to 1 if you have the `munmap' function. */
#undef HAVE_MUNMAP

/* mmap() is no good without munmap() */
#if defined(HAVE_MMAP) && !defined(HAVE_MUNMAP)
#  undef /**/ HAVE_MMAP
#endif

/* Define to 1 if you have the <nan.h> header file. */
#undef HAVE_NAN_H

/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H

/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H            1

/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H       1

/* Define to 1 if you have the <poll.h> header file. */
#undef HAVE_POLL_H

/* Define to 1 if you have the `printf' function. */
#undef HAVE_PRINTF                      /* Use trio. */

/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF                     /* Use trio. */

/* Define if <pthread.h> is there */
#define HAVE_PTHREAD_H          1

/* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV             1

/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND               1

/* Define to 1 if you have the `rand_r' function. */
#define HAVE_RAND_R             1

/* Define to 1 if you have the <resolv.h> header file. */
#define HAVE_RESOLV_H           1

/* Have shl_load based dso */
#undef HAVE_SHLLOAD

/* Define to 1 if you have the `signal' function. */
#undef HAVE_SIGNAL

/* Define to 1 if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H           1

/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF                    /* Use trio. */

/* Define to 1 if you have the `sprintf' function. */
#undef HAVE_SPRINTF                     /* Use trio. */

/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND              1

/* Define to 1 if you have the `scanf' function. */
#undef HAVE_SCANF                       /* Use trio. */

/* Define to 1 if you have the `fscanf' function. */
#undef HAVE_FSCANF                      /* Use trio. */

/* Define to 1 if you have the `sscanf' function. */
#undef HAVE_SSCANF                      /* Use trio. */

/* Define to 1 if you have the `stat' function. */
#define HAVE_STAT               1

/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H           1       /* Overloaded */

/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H           1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H           1

/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP             1

/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR           1

/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME           1

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H          1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H           1

/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP

/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_DIR_H

/* Define to 1 if you have the <sys/mman.h> header file. */
#define HAVE_SYS_MMAN_H         1

/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
   */
#undef HAVE_SYS_NDIR_H

/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H

/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H       1

/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H         1

/* Define to 1 if you have the <sys/timeb.h> header file. */
#define HAVE_SYS_TIMEB_H        1

/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1

/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H        1

/* Define to 1 if you have the `time' function. */
#define HAVE_TIME               1

/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H             1

/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H           1

/* Whether va_copy() is available */
#undef HAVE_VA_COPY

/* Define to 1 if you have the `vfprintf' function. */
#undef HAVE_VFPRINTF                    /* Use trio. */

/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF                   /* Use trio. */

/* Define to 1 if you have the `vsprintf' function. */
#undef HAVE_VSPRINTF                    /* Use trio. */

/* Define to 1 if you have the <zlib.h> header file. */
/* Actually dependent on the compilation script. */
#if @WITH_ZLIB@
#define HAVE_ZLIB_H             1
#else
#undef HAVE_ZLIB_H
#endif

/* Define to 1 if you have the `_stat' function. */
#undef HAVE__STAT

/* Whether __va_copy() is available */
#undef HAVE___VA_COPY

/* Define as const if the declaration of iconv() needs const. */
#define ICONV_CONST

/* Define to the sub-directory in which libtool stores uninstalled libraries.
   */
#undef LT_OBJDIR

/* Name of package */
#define PACKAGE                 "libxml2"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT       ""

/* Define to the full name of this package. */
#define PACKAGE_NAME            ""

/* Define to the full name and version of this package. */
#define PACKAGE_STRING          ""

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME         ""

/* Define to the home page for this package. */
#define PACKAGE_URL             ""

/* Define to the version of this package. */
#define PACKAGE_VERSION         ""

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS            1

/* Support for IPv6 */
#define SUPPORT_IP6

/* Version number of package */
#define VERSION                 "@VERSION@"

/* Determine what socket length (socklen_t) data type is */
#define XML_SOCKLEN_T           socklen_t

/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
   #define below would cause a syntax error. */
#undef _UINT32_T

/* Using the Win32 Socket implementation */
#undef _WINSOCKAPI_

/* ss_family is not defined here, use __ss_family instead */
#undef ss_family

/* Define to the type of an unsigned integer type of width exactly 32 bits if
   such a type exists and the standard includes do not define it. */
#undef uint32_t

/* Type cast for the send() function 2nd arg */
#define SEND_ARG2_CAST          (char *)

/* Type cast for the gethostbyname() argument */
#define GETHOSTBYNAME_ARG_CAST  (char *)

/* Define if va_list is an array type */
#define VA_LIST_IS_ARRAY        1
