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

/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD

/* Broken RedHat 7.2 system header files */
#undef BROKEN_REDHAT_7_SYSTEM_HEADERS

/* Broken RHEL5 sys/capability.h */
#undef BROKEN_RHEL5_SYS_CAP_HEADER

/* Whether strndup is broken */
#undef BROKEN_STRNDUP

/* Whether strnlen is broken */
#undef BROKEN_STRNLEN

/* Whether dlopen takes unsigned int flags */
#undef DLOPEN_TAKES_UNSIGNED_FLAGS

/* Define to 1 if you have the <acl/libacl.h> header file. */
#undef HAVE_ACL_LIBACL_H

/* Define to 1 if you have the `asprintf' function. */
#undef HAVE_ASPRINTF

/* Whether the bool type is available */
#undef HAVE_BOOL

/* Define to 1 if you have the `bzero' function. */
#undef HAVE_BZERO

/* Whether there is a C99 compliant vsnprintf */
#undef HAVE_C99_VSNPRINTF

/* Define to 1 if you have the `chown' function. */
#undef HAVE_CHOWN

/* Define to 1 if you have the `chroot' function. */
#undef HAVE_CHROOT

/* Define to 1 if you have the `chsize' function. */
#undef HAVE_CHSIZE

/* Whether or not we have comparison_fn_t */
#undef HAVE_COMPARISON_FN_T

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

/* Whether the system has the crypt() function */
#undef HAVE_CRYPT

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

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

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

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

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

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

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

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

/* Define to 1 if you have the `dirfd' function. */
#undef HAVE_DIRFD

/* Whether dirfd() is available */
#undef HAVE_DIRFD_DECL

/* Define to 1 if you have the `dlclose' function. */
#undef HAVE_DLCLOSE

/* Define to 1 if you have the `dlerror' function. */
#undef HAVE_DLERROR

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

/* Define to 1 if you have the `dlopen' function. */
#undef HAVE_DLOPEN

/* Define to 1 if you have the `dlsym' function. */
#undef HAVE_DLSYM

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

/* Define to 1 if you have the `dup2' function. */
#undef HAVE_DUP2

/* Whether environ() is available */
#undef HAVE_ENVIRON_DECL

/* Whether errno() is available */
#undef HAVE_ERRNO_DECL

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

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

/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE

/* Whether there is a __FUNCTION__ macro */
#undef HAVE_FUNCTION_MACRO

/* Define to 1 if you have the `getdents' function. */
#undef HAVE_GETDENTS

/* Define to 1 if you have the `getdirentries' function. */
#undef HAVE_GETDIRENTRIES

/* Define to 1 if you have the `getgrent_r' function. */
#undef HAVE_GETGRENT_R

/* Whether getgrent_r() is available */
#undef HAVE_GETGRENT_R_DECL

/* Define to 1 if you have the `getgrgid_r' function. */
#undef HAVE_GETGRGID_R

/* Define to 1 if you have the `getgrnam_r' function. */
#undef HAVE_GETGRNAM_R

/* Define to 1 if you have the `getgrouplist' function. */
#undef HAVE_GETGROUPLIST

/* Define to 1 if you have the `getpgrp' function. */
#undef HAVE_GETPGRP

/* Define to 1 if you have the `getpwent_r' function. */
#undef HAVE_GETPWENT_R

/* Whether getpwent_r() is available */
#undef HAVE_GETPWENT_R_DECL

/* Define to 1 if you have the `getpwnam_r' function. */
#undef HAVE_GETPWNAM_R

/* Define to 1 if you have the `getpwuid_r' function. */
#undef HAVE_GETPWUID_R

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

/* Whether the compiler supports immediate structures */
#undef HAVE_IMMEDIATE_STRUCTURES

/* Define to 1 if you have the `initgroups' function. */
#undef HAVE_INITGROUPS

/* Define to 1 if the system has the type `intptr_t'. */
#undef HAVE_INTPTR_T

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

/* Define to 1 if you have the `isatty' function. */
#undef HAVE_ISATTY

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

/* Define to 1 if you have the `lchown' function. */
#undef HAVE_LCHOWN

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

/* Define to 1 if you have the `link' function. */
#undef HAVE_LINK

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

/* Define to 1 if the system has the type `long long'. */
#undef HAVE_LONG_LONG

/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT

/* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY

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

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

/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET

/* Define if target mkdir supports mode option */
#undef HAVE_MKDIR_MODE

/* Define to 1 if you have the `mkdtemp' function. */
#undef HAVE_MKDTEMP

/* Define to 1 if you have the `mktime' function. */
#undef HAVE_MKTIME

/* Whether mmap works */
#undef HAVE_MMAP

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

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

/* Whether the open(2) accepts O_DIRECT */
#undef HAVE_OPEN_O_DIRECT

/* Define to 1 if you have the `pipe' function. */
#undef HAVE_PIPE

/* Define to 1 if you have the `pread' function. */
#undef HAVE_PREAD

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

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

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

/* Define to 1 if you have the `pwrite' function. */
#undef HAVE_PWRITE

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

/* Define to 1 if you have the `random' function. */
#undef HAVE_RANDOM

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

/* Define to 1 if you have the `realpath' function. */
#undef HAVE_REALPATH

/* Define to 1 if you have the `rename' function. */
#undef HAVE_RENAME

/* Whether mkstemp is secure */
#undef HAVE_SECURE_MKSTEMP

/* Define to 1 if you have the `setbuffer' function. */
#undef HAVE_SETBUFFER

/* Define to 1 if you have the `setegid' function. */
#undef HAVE_SETEGID

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

/* Whether setenv() is available */
#undef HAVE_SETENV_DECL

/* Define to 1 if you have the `seteuid' function. */
#undef HAVE_SETEUID

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

/* Define to 1 if you have the `setlinebuf' function. */
#undef HAVE_SETLINEBUF

/* Define to 1 if you have the `setresgid' function. */
#undef HAVE_SETRESGID

/* Whether setresgid() is available */
#undef HAVE_SETRESGID_DECL

/* Define to 1 if you have the `setresuid' function. */
#undef HAVE_SETRESUID

/* Whether setresuid() is available */
#undef HAVE_SETRESUID_DECL

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

/* Define to 1 if you have the `shl_findsym' function. */
#undef HAVE_SHL_FINDSYM

/* Define to 1 if you have the `shl_load' function. */
#undef HAVE_SHL_LOAD

/* Define to 1 if you have the `shl_unload' function. */
#undef HAVE_SHL_UNLOAD

/* Whether we have the atomic_t variable type */
#undef HAVE_SIG_ATOMIC_T_TYPE

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

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

/* Define to 1 if you have the `srandom' function. */
#undef HAVE_SRANDOM

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

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

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

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

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

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

/* Define to 1 if you have the `strcasestr' function. */
#undef HAVE_STRCASESTR

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

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

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

/* 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. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT

/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY

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

/* Define to 1 if you have the `strnlen' function. */
#undef HAVE_STRNLEN

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

/* Define to 1 if you have the `strtok_r' function. */
#undef HAVE_STRTOK_R

/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL

/* Define to 1 if you have the `strtoq' function. */
#undef HAVE_STRTOQ

/* Define to 1 if you have the `strtoull' function. */
#undef HAVE_STRTOULL

/* Define to 1 if you have the `strtouq' function. */
#undef HAVE_STRTOUQ

/* Define to 1 if `st_rdev' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_RDEV

/* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use
   `HAVE_STRUCT_STAT_ST_RDEV' instead. */
#undef HAVE_ST_RDEV

/* Define to 1 if you have the `symlink' function. */
#undef HAVE_SYMLINK

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

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

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

/* 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/fcntl.h> header file. */
#undef HAVE_SYS_FCNTL_H

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

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

/* Define to 1 if you have the <sys/fs/s5param.h> header file. */
#undef HAVE_SYS_FS_S5PARAM_H

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

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

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

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

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

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

/* 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/param.h> header file. */
#undef HAVE_SYS_PARAM_H

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

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

/* Define to 1 if you have the <sys/security.h> header file. */
#undef HAVE_SYS_SECURITY_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/shm.h> header file. */
#undef HAVE_SYS_SHM_H

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

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

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

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

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

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H

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

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

/* Define to 1 if you have the `timegm' function. */
#undef HAVE_TIMEGM

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

/* Define to 1 if the system has the type `uintptr_t'. */
#undef HAVE_UINTPTR_T

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

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

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

/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP

/* Define to 1 if you have the `utime' function. */
#undef HAVE_UTIME

/* Define to 1 if you have the `utimes' function. */
#undef HAVE_UTIMES

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

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

/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF

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

/* Whether the C compiler understands volatile */
#undef HAVE_VOLATILE

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

/* Define to 1 if you have the `vsyslog' function. */
#undef HAVE_VSYSLOG

/* Define to 1 if you have the `wait4' function. */
#undef HAVE_WAIT4

/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID

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

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

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

/* Whether the _Bool type is available */
#undef HAVE__Bool

/* Whether the __VA_ARGS__ macro is available */
#undef HAVE__VA_ARGS__MACRO

/* Define to 1 if you have the `__strtoll' function. */
#undef HAVE___STRTOLL

/* Define to 1 if you have the `__strtoull' function. */
#undef HAVE___STRTOULL

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

/* Whether there is a __func__ macro */
#undef HAVE_func_MACRO

/* Whether MMAP is broken */
#undef MMAP_BLACKLIST

/* 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

/* Whether getpass should be replaced */
#undef REPLACE_GETPASS

/* getpass returns <9 chars where getpassphrase returns <265 chars */
#undef REPLACE_GETPASS_BY_GETPASSPHRASE

/* replace readdir */
#undef REPLACE_READDIR

/* replace readdir using getdents() */
#undef REPLACE_READDIR_GETDENTS

/* replace readdir using getdirentries() */
#undef REPLACE_READDIR_GETDIRENTRIES

/* Whether strptime should be replaced */
#undef REPLACE_STRPTIME

/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE

/* Whether seekdir returns an int */
#undef SEEKDIR_RETURNS_INT

/* The size of `char', as computed by sizeof. */
#undef SIZEOF_CHAR

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG

/* The size of `long long', as computed by sizeof. */
#undef SIZEOF_LONG_LONG

/* The size of `off_t', as computed by sizeof. */
#undef SIZEOF_OFF_T

/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT

/* The size of `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T

/* The size of `ssize_t', as computed by sizeof. */
#undef SIZEOF_SSIZE_T

/* The size of `void *', as computed by sizeof. */
#undef SIZEOF_VOID_P

/* getgrent_r irix (similar to solaris) function prototype */
#undef SOLARIS_GETGRENT_R

/* getpwent_r irix (similar to solaris) function prototype */
#undef SOLARIS_GETPWENT_R

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

/* talloc major version */
#undef TALLOC_BUILD_VERSION_MAJOR

/* talloc minor version */
#undef TALLOC_BUILD_VERSION_MINOR

/* talloc release version */
#undef TALLOC_BUILD_VERSION_RELEASE

/* Whether telldir takes a const pointer */
#undef TELLDIR_TAKES_CONST_DIR

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif


/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS

/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES

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


#ifndef _OSF_SOURCE
# undef _OSF_SOURCE
#endif


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

/* Whether to enable POSIX support */
#undef _POSIX_C_SOURCE

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

/* Whether to enable System V compatibility */
#undef _SYSV


#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif



#ifndef _XOPEN_SOURCE_EXTENDED
# undef _XOPEN_SOURCE_EXTENDED
#endif


/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
#undef inline
#endif

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

/* Define to `short' if <sys/types.h> does not define. */
#undef int16_t

/* Define to `long' if <sys/types.h> does not define. */
#undef int32_t

/* Define to `long long' if <sys/types.h> does not define. */
#undef int64_t

/* Define to `char' if <sys/types.h> does not define. */
#undef int8_t

/* Define to `off_t' if <sys/types.h> does not define. */
#undef loff_t

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

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

/* Define to `loff_t' if <sys/types.h> does not define. */
#undef offset_t

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

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

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

/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t

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

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

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

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

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