/* config.h.in.  Generated from configure.ac by autoheader.  */

/* Define to the number of bits in type 'int16_t'. */
#undef BITSIZEOF_INT16_T

/* Define to the number of bits in type 'int32_t'. */
#undef BITSIZEOF_INT32_T

/* Define to the number of bits in type 'int64_t'. */
#undef BITSIZEOF_INT64_T

/* Define to the number of bits in type 'int8_t'. */
#undef BITSIZEOF_INT8_T

/* Define to the number of bits in type 'intmax_t'. */
#undef BITSIZEOF_INTMAX_T

/* Define to the number of bits in type 'intptr_t'. */
#undef BITSIZEOF_INTPTR_T

/* Define to the number of bits in type 'int_fast16_t'. */
#undef BITSIZEOF_INT_FAST16_T

/* Define to the number of bits in type 'int_fast32_t'. */
#undef BITSIZEOF_INT_FAST32_T

/* Define to the number of bits in type 'int_fast64_t'. */
#undef BITSIZEOF_INT_FAST64_T

/* Define to the number of bits in type 'int_fast8_t'. */
#undef BITSIZEOF_INT_FAST8_T

/* Define to the number of bits in type 'int_least16_t'. */
#undef BITSIZEOF_INT_LEAST16_T

/* Define to the number of bits in type 'int_least32_t'. */
#undef BITSIZEOF_INT_LEAST32_T

/* Define to the number of bits in type 'int_least64_t'. */
#undef BITSIZEOF_INT_LEAST64_T

/* Define to the number of bits in type 'int_least8_t'. */
#undef BITSIZEOF_INT_LEAST8_T

/* Define to the number of bits in type 'long'. */
#undef BITSIZEOF_LONG

/* Define to the number of bits in type 'ptrdiff_t'. */
#undef BITSIZEOF_PTRDIFF_T

/* Define to the number of bits in type 'sig_atomic_t'. */
#undef BITSIZEOF_SIG_ATOMIC_T

/* Define to the number of bits in type 'size_t'. */
#undef BITSIZEOF_SIZE_T

/* Define to the number of bits in type 'uint16_t'. */
#undef BITSIZEOF_UINT16_T

/* Define to the number of bits in type 'uint32_t'. */
#undef BITSIZEOF_UINT32_T

/* Define to the number of bits in type 'uint64_t'. */
#undef BITSIZEOF_UINT64_T

/* Define to the number of bits in type 'uint8_t'. */
#undef BITSIZEOF_UINT8_T

/* Define to the number of bits in type 'uintmax_t'. */
#undef BITSIZEOF_UINTMAX_T

/* Define to the number of bits in type 'uintptr_t'. */
#undef BITSIZEOF_UINTPTR_T

/* Define to the number of bits in type 'uint_fast16_t'. */
#undef BITSIZEOF_UINT_FAST16_T

/* Define to the number of bits in type 'uint_fast32_t'. */
#undef BITSIZEOF_UINT_FAST32_T

/* Define to the number of bits in type 'uint_fast64_t'. */
#undef BITSIZEOF_UINT_FAST64_T

/* Define to the number of bits in type 'uint_fast8_t'. */
#undef BITSIZEOF_UINT_FAST8_T

/* Define to the number of bits in type 'uint_least16_t'. */
#undef BITSIZEOF_UINT_LEAST16_T

/* Define to the number of bits in type 'uint_least32_t'. */
#undef BITSIZEOF_UINT_LEAST32_T

/* Define to the number of bits in type 'uint_least64_t'. */
#undef BITSIZEOF_UINT_LEAST64_T

/* Define to the number of bits in type 'uint_least8_t'. */
#undef BITSIZEOF_UINT_LEAST8_T

/* Define to the number of bits in type 'unsigned_int'. */
#undef BITSIZEOF_UNSIGNED_INT

/* Define to the number of bits in type 'unsigned_long'. */
#undef BITSIZEOF_UNSIGNED_LONG

/* Define to the number of bits in type 'wchar_t'. */
#undef BITSIZEOF_WCHAR_T

/* Define to the number of bits in type 'wint_t'. */
#undef BITSIZEOF_WINT_T

/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
   systems. This function is required for `alloca.c' support on those systems.
   */
#undef CRAY_STACKSEG_END

/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA

/* Define as good substitute value for EILSEQ. */
#undef EILSEQ

/* Define to 1 to enable a few rarely used encodings. */
#undef ENABLE_EXTRA

/* Define to 1 if translation of program messages to the user's native
   language is requested. */

/* Define to 1 if the package shall run at any location in the filesystem. */
#define ENABLE_RELOCATABLE 1

/* Define this to the full path to <inttypes.h>. */
#undef FULL_PATH_INTTYPES_H

/* Define this to the full path to <stdint.h>. */
#undef FULL_PATH_STDINT_H

/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1

/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
   */
#undef HAVE_ALLOCA_H

/* Define to 1 if you have the `canonicalize_file_name' function. */
#undef HAVE_CANONICALIZE_FILE_NAME

/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
   CoreFoundation framework. */
#undef HAVE_CFLOCALECOPYCURRENT

/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
   the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE

/* Define if the GNU dcgettext() function is already present or preinstalled.
   */
#undef HAVE_DCGETTEXT

/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_CLEARERR_UNLOCKED

/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
   don't. */
#undef HAVE_DECL_FEOF_UNLOCKED

/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FERROR_UNLOCKED

/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FFLUSH_UNLOCKED

/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FGETS_UNLOCKED

/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FPUTC_UNLOCKED

/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FPUTS_UNLOCKED

/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FREAD_UNLOCKED

/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_FWRITE_UNLOCKED

/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_GETCHAR_UNLOCKED

/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
   don't. */
#undef HAVE_DECL_GETC_UNLOCKED

/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
   you don't. */
#undef HAVE_DECL_PUTCHAR_UNLOCKED

/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
   don't. */
#undef HAVE_DECL_PUTC_UNLOCKED

/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
   don't. */
#undef HAVE_DECL_STRERROR_R

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

/* Define if you have the declaration of environ. */
#define HAVE_ENVIRON_DECL 1

/* Define if you have the declaration of errno. */
#define HAVE_ERRNO_DECL 1

/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1

/* Define to 1 if you have the `getc_unlocked' function. */
#undef HAVE_GETC_UNLOCKED

/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT

/* Define if you have the iconv() function. */
#undef HAVE_ICONV

/* Define to 1 if the type 'int16_t' is already defined. */
#undef HAVE_INT16_T

/* Define to 1 if the type 'int32_t' is already defined. */
#undef HAVE_INT32_T

/* Define to 1 if the type 'int64_t' is already defined. */
#undef HAVE_INT64_T

/* Define to 1 if the type 'int64_t' is already definedin <stdint.h>. */
#undef HAVE_INT64_T_IN_STDINT_H

/* Define to 1 if the type 'int8_t' is already defined. */
#undef HAVE_INT8_T

/* Define to 1 if the type 'intmax_t' is already defined. */
#undef HAVE_INTMAX_T

/* Define to 1 if the type 'intptr_t' is already defined. */
#undef HAVE_INTPTR_T

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

/* Define to 1 if the type 'int_fast16_t' is already defined. */
#undef HAVE_INT_FAST16_T

/* Define to 1 if the type 'int_fast32_t' is already defined. */
#undef HAVE_INT_FAST32_T

/* Define to 1 if the type 'int_fast64_t' is already defined. */
#undef HAVE_INT_FAST64_T

/* Define to 1 if the type 'int_fast64_t' is already definedin <stdint.h>. */
#undef HAVE_INT_FAST64_T_IN_STDINT_H

/* Define to 1 if the type 'int_fast8_t' is already defined. */
#undef HAVE_INT_FAST8_T

/* Define to 1 if the type 'int_least16_t' is already defined. */
#undef HAVE_INT_LEAST16_T

/* Define to 1 if the type 'int_least32_t' is already defined. */
#undef HAVE_INT_LEAST32_T

/* Define to 1 if the type 'int_least64_t' is already defined. */
#undef HAVE_INT_LEAST64_T

/* Define to 1 if the type 'int_least64_t' is already definedin <stdint.h>. */
#undef HAVE_INT_LEAST64_T_IN_STDINT_H

/* Define to 1 if the type 'int_least8_t' is already defined. */
#undef HAVE_INT_LEAST8_T

/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
#undef HAVE_LANGINFO_CODESET

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

/* Define if you have the 'long double' type. */
#undef HAVE_LONG_DOUBLE

/* Define if you have the 'long long' type. */
#undef HAVE_LONG_LONG

/* Define to 1 if you have the <mach-o/dyld.h> header file. */
#undef HAVE_MACH_O_DYLD_H

/* Define to 1 if you have the `mbrtowc' function. */
#undef HAVE_MBRTOWC

/* Define to 1 if you have the `mbsinit' function. */
#undef HAVE_MBSINIT

/* Define to 1 if <wchar.h> declares mbstate_t. */
#undef HAVE_MBSTATE_T

/* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE 1

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

/* Define to 1 if the system has the type `ptrdiff_t'. */
#undef HAVE_PTRDIFF_T

/* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK

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

/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV

/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1

/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
#undef HAVE_SIGNED_SIG_ATOMIC_T

/* Define to 1 if 'wchar_t' is a signed integer type. */
#undef HAVE_SIGNED_WCHAR_T

/* Define to 1 if 'wint_t' is a signed integer type. */
#undef HAVE_SIGNED_WINT_T

/* Define to 1 if the system has the type `sig_atomic_t'. */
#undef HAVE_SIG_ATOMIC_T

/* Define to 1 if stdbool.h conforms to C99. */
#undef HAVE_STDBOOL_H

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

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

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

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

/* Define to 1 if you have the `strerror_r' function. */
#undef HAVE_STRERROR_R

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

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

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

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

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

/* 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/types.h> header file. */
#define HAVE_SYS_TYPES_H 1

/* Define to 1 if you have the `tsearch' function. */
#undef HAVE_TSEARCH

/* Define to 1 if the type 'uint16_t' is already defined. */
#undef HAVE_UINT16_T

/* Define to 1 if the type 'uint32_t' is already defined. */
#undef HAVE_UINT32_T

/* Define to 1 if the type 'uint64_t' is already defined. */
#undef HAVE_UINT64_T

/* Define to 1 if the type 'uint64_t' is already definedin <stdint.h>. */
#undef HAVE_UINT64_T_IN_STDINT_H

/* Define to 1 if the type 'uint8_t' is already defined. */
#undef HAVE_UINT8_T

/* Define to 1 if the type 'uintmax_t' is already defined. */
#undef HAVE_UINTMAX_T

/* Define to 1 if the type 'uintptr_t' is already defined. */
#undef HAVE_UINTPTR_T

/* Define to 1 if the type 'uint_fast16_t' is already defined. */
#undef HAVE_UINT_FAST16_T

/* Define to 1 if the type 'uint_fast32_t' is already defined. */
#undef HAVE_UINT_FAST32_T

/* Define to 1 if the type 'uint_fast64_t' is already defined. */
#undef HAVE_UINT_FAST64_T

/* Define to 1 if the type 'uint_fast64_t' is already definedin <stdint.h>. */
#undef HAVE_UINT_FAST64_T_IN_STDINT_H

/* Define to 1 if the type 'uint_fast8_t' is already defined. */
#undef HAVE_UINT_FAST8_T

/* Define to 1 if the type 'uint_least16_t' is already defined. */
#undef HAVE_UINT_LEAST16_T

/* Define to 1 if the type 'uint_least32_t' is already defined. */
#undef HAVE_UINT_LEAST32_T

/* Define to 1 if the type 'uint_least64_t' is already defined. */
#undef HAVE_UINT_LEAST64_T

/* Define to 1 if the type 'uint_least64_t' is already definedin <stdint.h>.
   */
#undef HAVE_UINT_LEAST64_T_IN_STDINT_H

/* Define to 1 if the type 'uint_least8_t' is already defined. */
#undef HAVE_UINT_LEAST8_T

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

/* Define to 1 if you have the `unsetenv' function. */
#undef HAVE_UNSETENV

/* Define to 1 or 0, depending whether the compiler supports simple visibility
   declarations. */
#undef HAVE_VISIBILITY

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

/* Define if you have the 'wchar_t' type. */
#undef HAVE_WCHAR_T

/* Define to 1 if you have the `wcrtomb' function. */
#undef HAVE_WCRTOMB

/* Define to 1 if the system has the type `wint_t'. */
#undef HAVE_WINT_T

/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL

/* Define to 1 if you have the `_NSGetExecutablePath' function. */
#undef HAVE__NSGETEXECUTABLEPATH

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

/* Define to the value of ${prefix}, as a string. */

/* Define if <stdint.h> doesn't define it. */
#undef INT16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT16_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT32_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT32_MIN

/* Define if <stdint.h> doesn't define it but has the int64_t type. */
#undef INT64_MAX

/* Define if <stdint.h> doesn't define it but has the int64_t type. */
#undef INT64_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT8_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT8_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INTMAX_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INTMAX_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INTPTR_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INTPTR_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST16_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST32_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST32_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST64_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST64_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST8_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_FAST8_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST16_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST32_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST32_MIN

/* Define if <stdint.h> doesn't define it but has the int_least64_t type. */
#undef INT_LEAST64_MAX

/* Define if <stdint.h> doesn't define it but has the int_least64_t type. */
#undef INT_LEAST64_MIN

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST8_MAX

/* Define if <stdint.h> doesn't define it. */
#undef INT_LEAST8_MIN

/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
#define MALLOC_0_IS_NONNULL 1

/* Name of package */
#undef PACKAGE

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

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

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

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

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

/* Define if <stdint.h> doesn't define it. */
#undef PTRDIFF_MAX

/* Define if <stdint.h> doesn't define it. */
#undef PTRDIFF_MIN

/* Define if <stdint.h> doesn't define it. */
#undef SIG_ATOMIC_MAX

/* Define if <stdint.h> doesn't define it. */
#undef SIG_ATOMIC_MIN

/* Define as the maximum value of type 'size_t', if the system doesn't define
   it. */
#undef SIZE_MAX

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at runtime.
	STACK_DIRECTION > 0 => grows toward higher addresses
	STACK_DIRECTION < 0 => grows toward lower addresses
	STACK_DIRECTION = 0 => direction of growth unknown */
#define STACK_DIRECTION -1

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

/* Define to 1 if strerror_r returns char *. */
#undef STRERROR_R_CHAR_P

/* Define if <stdint.h> doesn't define it. */
#undef UINT16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT32_MAX

/* Define if <stdint.h> doesn't define it but has the uint64_t type. */
#undef UINT64_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT8_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINTMAX_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINTPTR_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_FAST16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_FAST32_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_FAST64_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_FAST8_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_LEAST16_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_LEAST32_MAX

/* Define if <stdint.h> doesn't define it but has the uint_least64_t type. */
#undef UINT_LEAST64_MAX

/* Define if <stdint.h> doesn't define it. */
#undef UINT_LEAST8_MAX

/* Define to 1 if you want getc etc. to use unlocked I/O if available.
   Unlocked I/O can improve performance in unithreaded apps, but it is not
   safe for multithreaded apps. */
#undef USE_UNLOCKED_IO

/* Version number of package */
#undef VERSION

/* Define if unsetenv() returns void, not int. */
#undef VOID_UNSETENV

/* Define if <stdint.h> doesn't define it. */
#undef WINT_MAX

/* Define if <stdint.h> doesn't define it. */
#undef WINT_MIN

/* Define if the machine's byte ordering is little endian. */
#define WORDS_LITTLEENDIAN 1

/* Define to 1 if on AIX 3.
   System headers sometimes define this.
   We just want to avoid a redefinition error message.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif

/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif

/* Define to 1 if on MINIX. */
#undef _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#undef _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE

/* Enable extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif

/* Define to a type if <wchar.h> does not define. */
#undef mbstate_t

/* Define to a replacement function name for realpath(). */
#undef realpath

/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t

/* Define as a signed type of the same size as size_t. */
#undef ssize_t


/* On Windows, variables that may be in a DLL must be marked specially.  */
#if defined _MSC_VER && defined _DLL
# define DLL_VARIABLE __declspec (dllimport)
#else
# define DLL_VARIABLE
#endif

