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

/* Define if you have a getaddrinfo that fails for the all-zeros IPv6 address
   */
#undef AIX_GETNAMEINFO_HACK

/* Define if your AIX loginfailed() function takes 4 arguments (AIX >= 5.2) */
#undef AIX_LOGINFAILED_4ARG

/* System only supports IPv4 audit records */
#undef AU_IPv4

/* Define if your resolver libs need this for getrrsetbyname */
#undef BIND_8_COMPAT

/* The system has incomplete BSM API */
#undef BROKEN_BSM_API

/* Define if cmsg_type is not passed correctly */
#undef BROKEN_CMSG_TYPE

/* getaddrinfo is broken (if present) */
#undef BROKEN_GETADDRINFO

/* getgroups(0,NULL) will return -1 */
#undef BROKEN_GETGROUPS

/* FreeBSD glob does not do what we need */
#undef BROKEN_GLOB

/* Define if you system's inet_ntoa is busted (e.g. Irix gcc issue) */
#undef BROKEN_INET_NTOA

/* ia_uinfo routines not supported by OS yet */
#undef BROKEN_LIBIAF

/* Ultrix mmap can't map files */
#undef BROKEN_MMAP

/* Define if your struct dirent expects you to allocate extra space for d_name
   */
#undef BROKEN_ONE_BYTE_DIRENT_D_NAME

/* Can't do comparisons on readv */
#undef BROKEN_READV_COMPARISON

/* NetBSD read function is sometimes redirected, breaking atomicio comparisons
   against it */
#undef BROKEN_READ_COMPARISON

/* Define if you have a broken realpath. */
#undef BROKEN_REALPATH

/* Needed for NeXT */
#undef BROKEN_SAVED_UIDS

/* Define if your setregid() is broken */
#undef BROKEN_SETREGID

/* Define if your setresgid() is broken */
#undef BROKEN_SETRESGID

/* Define if your setresuid() is broken */
#undef BROKEN_SETRESUID

/* Define if your setreuid() is broken */
#undef BROKEN_SETREUID

/* LynxOS has broken setvbuf() implementation */
#undef BROKEN_SETVBUF

/* QNX shadow support is broken */
#undef BROKEN_SHADOW_EXPIRE

/* Define if your snprintf is busted */
#undef BROKEN_SNPRINTF

/* FreeBSD strnvis argument order is swapped compared to OpenBSD */
#undef BROKEN_STRNVIS

/* tcgetattr with ICANON may hang */
#undef BROKEN_TCGETATTR_ICANON

/* updwtmpx is broken (if present) */
#undef BROKEN_UPDWTMPX

/* Define if you have BSD auth support */
#undef BSD_AUTH

/* Define if you want to specify the path to your lastlog file */
#undef CONF_LASTLOG_FILE

/* Define if you want to specify the path to your utmp file */
#undef CONF_UTMP_FILE

/* Define if you want to specify the path to your wtmpx file */
#undef CONF_WTMPX_FILE

/* Define if you want to specify the path to your wtmp file */
#undef CONF_WTMP_FILE

/* Define if your platform needs to skip post auth file descriptor passing */
#undef DISABLE_FD_PASSING

/* Define if you don't want to use lastlog */
#undef DISABLE_LASTLOG

/* Define if you don't want to use your system's login() call */
#undef DISABLE_LOGIN

/* Define if you don't want to use pututline() etc. to write [uw]tmp */
#undef DISABLE_PUTUTLINE

/* Define if you don't want to use pututxline() etc. to write [uw]tmpx */
#undef DISABLE_PUTUTXLINE

/* Define if you want to disable shadow passwords */
#undef DISABLE_SHADOW

/* Define if you don't want to use utmp */
#undef DISABLE_UTMP

/* Define if you don't want to use utmpx */
#undef DISABLE_UTMPX

/* Define if you don't want to use wtmp */
#undef DISABLE_WTMP

/* Define if you don't want to use wtmpx */
#undef DISABLE_WTMPX

/* Enable for PKCS#11 support */
#undef ENABLE_PKCS11

/* File names may not contain backslash characters */
#undef FILESYSTEM_NO_BACKSLASH

/* fsid_t has member val */
#undef FSID_HAS_VAL

/* fsid_t has member __val */
#undef FSID_HAS___VAL

/* Define to 1 if the `getpgrp' function requires zero arguments. */
#undef GETPGRP_VOID

/* Conflicting defs for getspnam */
#undef GETSPNAM_CONFLICTING_DEFS

/* Define if your system glob() function has the GLOB_ALTDIRFUNC extension */
#undef GLOB_HAS_ALTDIRFUNC

/* Define if your system glob() function has gl_matchc options in glob_t */
#undef GLOB_HAS_GL_MATCHC

/* Define if your system glob() function has gl_statv options in glob_t */
#undef GLOB_HAS_GL_STATV

/* Define this if you want GSSAPI support in the version 2 protocol */
#undef GSSAPI

/* Define if you want to use shadow password expire field */
#undef HAS_SHADOW_EXPIRE

/* Define if your system uses access rights style file descriptor passing */
#undef HAVE_ACCRIGHTS_IN_MSGHDR

/* Define if you have ut_addr in utmp.h */
#undef HAVE_ADDR_IN_UTMP

/* Define if you have ut_addr in utmpx.h */
#undef HAVE_ADDR_IN_UTMPX

/* Define if you have ut_addr_v6 in utmp.h */
#undef HAVE_ADDR_V6_IN_UTMP

/* Define if you have ut_addr_v6 in utmpx.h */
#undef HAVE_ADDR_V6_IN_UTMPX

/* Define to 1 if you have the `arc4random' function. */
#undef HAVE_ARC4RANDOM

/* Define to 1 if you have the `arc4random_buf' function. */
#undef HAVE_ARC4RANDOM_BUF

/* Define to 1 if you have the `arc4random_stir' function. */
#undef HAVE_ARC4RANDOM_STIR

/* Define to 1 if you have the `arc4random_uniform' function. */
#undef HAVE_ARC4RANDOM_UNIFORM

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

/* OpenBSD's gcc has bounded */
#undef HAVE_ATTRIBUTE__BOUNDED__

/* Have attribute nonnull */
#undef HAVE_ATTRIBUTE__NONNULL__

/* OpenBSD's gcc has sentinel */
#undef HAVE_ATTRIBUTE__SENTINEL__

/* Define to 1 if you have the `aug_get_machine' function. */
#undef HAVE_AUG_GET_MACHINE

/* Define to 1 if you have the `b64_ntop' function. */
#undef HAVE_B64_NTOP

/* Define to 1 if you have the `b64_pton' function. */
#undef HAVE_B64_PTON

/* Define if you have the basename function. */
#undef HAVE_BASENAME

/* Define to 1 if you have the `bcopy' function. */
#undef HAVE_BCOPY

/* Define to 1 if you have the `bcrypt_pbkdf' function. */
#undef HAVE_BCRYPT_PBKDF

/* Define to 1 if you have the `bindresvport_sa' function. */
#undef HAVE_BINDRESVPORT_SA

/* Define to 1 if you have the `blf_enc' function. */
#undef HAVE_BLF_ENC

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

/* Define to 1 if you have the `Blowfish_expand0state' function. */
#undef HAVE_BLOWFISH_EXPAND0STATE

/* Define to 1 if you have the `Blowfish_expandstate' function. */
#undef HAVE_BLOWFISH_EXPANDSTATE

/* Define to 1 if you have the `Blowfish_initstate' function. */
#undef HAVE_BLOWFISH_INITSTATE

/* Define to 1 if you have the `Blowfish_stream2word' function. */
#undef HAVE_BLOWFISH_STREAM2WORD

/* Define to 1 if you have the `BN_is_prime_ex' function. */
#undef HAVE_BN_IS_PRIME_EX

/* Define to 1 if you have the <bsd/libutil.h> header file. */
#undef HAVE_BSD_LIBUTIL_H

/* Define to 1 if you have the <bsm/audit.h> header file. */
#undef HAVE_BSM_AUDIT_H

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

/* Define to 1 if you have the `cap_rights_limit' function. */
#undef HAVE_CAP_RIGHTS_LIMIT

/* Define to 1 if you have the `clock' function. */
#undef HAVE_CLOCK

/* Have clock_gettime */
#undef HAVE_CLOCK_GETTIME

/* define if you have clock_t data type */
#undef HAVE_CLOCK_T

/* Define to 1 if you have the `closefrom' function. */
#undef HAVE_CLOSEFROM

/* Define if gai_strerror() returns const char * */
#undef HAVE_CONST_GAI_STRERROR_PROTO

/* Define if your system uses ancillary data style file descriptor passing */
#undef HAVE_CONTROL_IN_MSGHDR

/* Define to 1 if you have the `crypt' function. */
#undef HAVE_CRYPT

/* Define to 1 if you have the <crypto/sha2.h> header file. */
#undef HAVE_CRYPTO_SHA2_H

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

/* Define if you are on Cygwin */
#undef HAVE_CYGWIN

/* Define if your libraries define daemon() */
#undef HAVE_DAEMON

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define to 1 if you have the `DES_crypt' function. */
#undef HAVE_DES_CRYPT

/* Define if you have /dev/ptmx */
#undef HAVE_DEV_PTMX

/* Define if you have /dev/ptc */
#undef HAVE_DEV_PTS_AND_PTC

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

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

/* Define to 1 if you have the `dirname' function. */
#undef HAVE_DIRNAME

/* Define to 1 if you have the `DSA_generate_parameters_ex' function. */
#undef HAVE_DSA_GENERATE_PARAMETERS_EX

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

/* Define to 1 if you have the `endgrent' function. */
#undef HAVE_ENDGRENT

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

/* Define to 1 if you have the `endutent' function. */
#undef HAVE_ENDUTENT

/* Define to 1 if you have the `endutxent' function. */
#undef HAVE_ENDUTXENT

/* Define if your system has /etc/default/login */
#undef HAVE_ETC_DEFAULT_LOGIN

/* Define if libcrypto has EVP_CIPHER_CTX_ctrl */
#undef HAVE_EVP_CIPHER_CTX_CTRL

/* Define to 1 if you have the `EVP_DigestFinal_ex' function. */
#undef HAVE_EVP_DIGESTFINAL_EX

/* Define to 1 if you have the `EVP_DigestInit_ex' function. */
#undef HAVE_EVP_DIGESTINIT_EX

/* Define to 1 if you have the `EVP_MD_CTX_cleanup' function. */
#undef HAVE_EVP_MD_CTX_CLEANUP

/* Define to 1 if you have the `EVP_MD_CTX_copy_ex' function. */
#undef HAVE_EVP_MD_CTX_COPY_EX

/* Define to 1 if you have the `EVP_MD_CTX_init' function. */
#undef HAVE_EVP_MD_CTX_INIT

/* Define to 1 if you have the `EVP_ripemd160' function. */
#undef HAVE_EVP_RIPEMD160

/* Define to 1 if you have the `EVP_sha256' function. */
#undef HAVE_EVP_SHA256

/* Define if you have ut_exit in utmp.h */
#undef HAVE_EXIT_IN_UTMP

/* Define to 1 if you have the `explicit_bzero' function. */
#undef HAVE_EXPLICIT_BZERO

/* Define to 1 if you have the `fchmod' function. */
#undef HAVE_FCHMOD

/* Define to 1 if you have the `fchown' function. */
#undef HAVE_FCHOWN

/* Use F_CLOSEM fcntl for closefrom */
#undef HAVE_FCNTL_CLOSEM

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

/* Define to 1 if the system has the type `fd_mask'. */
#undef HAVE_FD_MASK

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

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

/* Define to 1 if you have the `fmt_scaled' function. */
#undef HAVE_FMT_SCALED

/* Define to 1 if you have the `freeaddrinfo' function. */
#undef HAVE_FREEADDRINFO

/* Define to 1 if the system has the type `fsblkcnt_t'. */
#undef HAVE_FSBLKCNT_T

/* Define to 1 if the system has the type `fsfilcnt_t'. */
#undef HAVE_FSFILCNT_T

/* Define to 1 if you have the `fstatfs' function. */
#undef HAVE_FSTATFS

/* Define to 1 if you have the `fstatvfs' function. */
#undef HAVE_FSTATVFS

/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES

/* Define to 1 if you have the `gai_strerror' function. */
#undef HAVE_GAI_STRERROR

/* Define to 1 if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO

/* Define to 1 if you have the `getaudit' function. */
#undef HAVE_GETAUDIT

/* Define to 1 if you have the `getaudit_addr' function. */
#undef HAVE_GETAUDIT_ADDR

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

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

/* Define to 1 if you have the `getgrset' function. */
#undef HAVE_GETGRSET

/* Define to 1 if you have the `getlastlogxbyname' function. */
#undef HAVE_GETLASTLOGXBYNAME

/* Define to 1 if you have the `getluid' function. */
#undef HAVE_GETLUID

/* Define to 1 if you have the `getnameinfo' function. */
#undef HAVE_GETNAMEINFO

/* Define to 1 if you have the `getopt' function. */
#undef HAVE_GETOPT

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

/* Define if your getopt(3) defines and uses optreset */
#undef HAVE_GETOPT_OPTRESET

/* Define if your libraries define getpagesize() */
#undef HAVE_GETPAGESIZE

/* Define to 1 if you have the `getpeereid' function. */
#undef HAVE_GETPEEREID

/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED

/* Define to 1 if you have the `getpgid' function. */
#undef HAVE_GETPGID

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

/* Define to 1 if you have the `getpwanam' function. */
#undef HAVE_GETPWANAM

/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT

/* Define if getrrsetbyname() exists */
#undef HAVE_GETRRSETBYNAME

/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE

/* Define to 1 if you have the `getseuserbyname' function. */
#undef HAVE_GETSEUSERBYNAME

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

/* Define to 1 if you have the `getttyent' function. */
#undef HAVE_GETTTYENT

/* Define to 1 if you have the `getutent' function. */
#undef HAVE_GETUTENT

/* Define to 1 if you have the `getutid' function. */
#undef HAVE_GETUTID

/* Define to 1 if you have the `getutline' function. */
#undef HAVE_GETUTLINE

/* Define to 1 if you have the `getutxent' function. */
#undef HAVE_GETUTXENT

/* Define to 1 if you have the `getutxid' function. */
#undef HAVE_GETUTXID

/* Define to 1 if you have the `getutxline' function. */
#undef HAVE_GETUTXLINE

/* Define to 1 if you have the `getutxuser' function. */
#undef HAVE_GETUTXUSER

/* Define to 1 if you have the `get_default_context_with_level' function. */
#undef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL

/* Define to 1 if you have the `glob' function. */
#undef HAVE_GLOB

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

/* Define to 1 if you have the `group_from_gid' function. */
#undef HAVE_GROUP_FROM_GID

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

/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
#undef HAVE_GSSAPI_GSSAPI_GENERIC_H

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

/* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */
#undef HAVE_GSSAPI_GSSAPI_KRB5_H

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

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

/* Define if HEADER.ad exists in arpa/nameser.h */
#undef HAVE_HEADER_AD

/* Define to 1 if you have the `HMAC_CTX_init' function. */
#undef HAVE_HMAC_CTX_INIT

/* Define if you have ut_host in utmp.h */
#undef HAVE_HOST_IN_UTMP

/* Define if you have ut_host in utmpx.h */
#undef HAVE_HOST_IN_UTMPX

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

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

/* Define if you have ut_id in utmp.h */
#undef HAVE_ID_IN_UTMP

/* Define if you have ut_id in utmpx.h */
#undef HAVE_ID_IN_UTMPX

/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON

/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA

/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP

/* Define to 1 if you have the `innetgr' function. */
#undef HAVE_INNETGR

/* define if you have int64_t data type */
#undef HAVE_INT64_T

/* Define to 1 if the system has the type `intmax_t'. */
#undef HAVE_INTMAX_T

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

/* define if you have intxx_t data type */
#undef HAVE_INTXX_T

/* Define to 1 if the system has the type `in_addr_t'. */
#undef HAVE_IN_ADDR_T

/* Define to 1 if the system has the type `in_port_t'. */
#undef HAVE_IN_PORT_T

/* Define if you have isblank(3C). */
#undef HAVE_ISBLANK

/* Define to 1 if you have the `krb5_cc_new_unique' function. */
#undef HAVE_KRB5_CC_NEW_UNIQUE

/* Define to 1 if you have the `krb5_free_error_message' function. */
#undef HAVE_KRB5_FREE_ERROR_MESSAGE

/* Define to 1 if you have the `krb5_get_error_message' function. */
#undef HAVE_KRB5_GET_ERROR_MESSAGE

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

/* Define if you want ldns support */
#undef HAVE_LDNS

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

/* Define to 1 if you have the `bsm' library (-lbsm). */
#undef HAVE_LIBBSM

/* Define to 1 if you have the `crypt' library (-lcrypt). */
#undef HAVE_LIBCRYPT

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

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

/* Define if system has libiaf that supports set_id */
#undef HAVE_LIBIAF

/* Define to 1 if you have the `network' library (-lnetwork). */
#undef HAVE_LIBNETWORK

/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL

/* Define to 1 if you have the `pam' library (-lpam). */
#undef HAVE_LIBPAM

/* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET

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

/* Define to 1 if you have the `xnet' library (-lxnet). */
#undef HAVE_LIBXNET

/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ

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

/* Define to 1 if you have the <linux/audit.h> header file. */
#undef HAVE_LINUX_AUDIT_H

/* Define to 1 if you have the <linux/filter.h> header file. */
#undef HAVE_LINUX_FILTER_H

/* Define to 1 if you have the <linux/if_tun.h> header file. */
#undef HAVE_LINUX_IF_TUN_H

/* Define to 1 if you have the <linux/seccomp.h> header file. */
#undef HAVE_LINUX_SECCOMP_H

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

/* Define to 1 if you have the `login' function. */
#undef HAVE_LOGIN

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

/* Define to 1 if you have the `login_getcapbool' function. */
#undef HAVE_LOGIN_GETCAPBOOL

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

/* Define to 1 if you have the `logout' function. */
#undef HAVE_LOGOUT

/* Define to 1 if you have the `logwtmp' function. */
#undef HAVE_LOGWTMP

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

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

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

/* Define to 1 if you have the `mblen' function. */
#undef HAVE_MBLEN

/* Define to 1 if you have the `md5_crypt' function. */
#undef HAVE_MD5_CRYPT

/* Define if you want to allow MD5 passwords */
#undef HAVE_MD5_PASSWORDS

/* 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_s' function. */
#undef HAVE_MEMSET_S

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

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

/* define if you have mode_t data type */
#undef HAVE_MODE_T

/* Some systems put nanosleep outside of libc */
#undef HAVE_NANOSLEEP

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

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

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

/* Define to 1 if you have the <net/if_tun.h> header file. */
#undef HAVE_NET_IF_TUN_H

/* Define if you are on NeXT */
#undef HAVE_NEXT

/* Define to 1 if you have the `ngetaddrinfo' function. */
#undef HAVE_NGETADDRINFO

/* Define to 1 if you have the `nsleep' function. */
#undef HAVE_NSLEEP

/* Define to 1 if you have the `ogetaddrinfo' function. */
#undef HAVE_OGETADDRINFO

/* Define if you have an old version of PAM which takes only one argument to
   pam_strerror */
#undef HAVE_OLD_PAM

/* Define to 1 if you have the `openlog_r' function. */
#undef HAVE_OPENLOG_R

/* Define to 1 if you have the `openpty' function. */
#undef HAVE_OPENPTY

/* Define if your ssl headers are included with #include <openssl/header.h> */
#undef HAVE_OPENSSL

/* Define if you have Digital Unix Security Integration Architecture */
#undef HAVE_OSF_SIA

/* Define to 1 if you have the `pam_getenvlist' function. */
#undef HAVE_PAM_GETENVLIST

/* Define to 1 if you have the <pam/pam_appl.h> header file. */
#undef HAVE_PAM_PAM_APPL_H

/* Define to 1 if you have the `pam_putenv' function. */
#undef HAVE_PAM_PUTENV

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

/* Define if you have ut_pid in utmp.h */
#undef HAVE_PID_IN_UTMP

/* define if you have pid_t data type */
#undef HAVE_PID_T

/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL

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

/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL

/* Define if you have /proc/$pid/fd */
#undef HAVE_PROC_PID

/* Define to 1 if you have the `pstat' function. */
#undef HAVE_PSTAT

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

/* Define to 1 if you have the `pututline' function. */
#undef HAVE_PUTUTLINE

/* Define to 1 if you have the `pututxline' function. */
#undef HAVE_PUTUTXLINE

/* Define to 1 if you have the `readpassphrase' function. */
#undef HAVE_READPASSPHRASE

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

/* Define to 1 if you have the `reallocarray' function. */
#undef HAVE_REALLOCARRAY

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

/* Define to 1 if you have the `recvmsg' function. */
#undef HAVE_RECVMSG

/* sys/resource.h has RLIMIT_NPROC */
#undef HAVE_RLIMIT_NPROC

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

/* Define to 1 if you have the `rresvport_af' function. */
#undef HAVE_RRESVPORT_AF

/* Define to 1 if you have the `RSA_generate_key_ex' function. */
#undef HAVE_RSA_GENERATE_KEY_EX

/* Define to 1 if you have the `RSA_get_default_method' function. */
#undef HAVE_RSA_GET_DEFAULT_METHOD

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

/* Define to 1 if you have the `sandbox_init' function. */
#undef HAVE_SANDBOX_INIT

/* define if you have sa_family_t data type */
#undef HAVE_SA_FAMILY_T

/* Define to 1 if you have the `scan_scaled' function. */
#undef HAVE_SCAN_SCALED

/* Define if you have SecureWare-based protected password database */
#undef HAVE_SECUREWARE

/* Define to 1 if you have the <security/pam_appl.h> header file. */
#undef HAVE_SECURITY_PAM_APPL_H

/* Define to 1 if you have the `sendmsg' function. */
#undef HAVE_SENDMSG

/* Define to 1 if you have the `setauthdb' function. */
#undef HAVE_SETAUTHDB

/* Define to 1 if you have the `setdtablesize' function. */
#undef HAVE_SETDTABLESIZE

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

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

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

/* Define to 1 if you have the `setgroupent' function. */
#undef HAVE_SETGROUPENT

/* Define to 1 if you have the `setgroups' function. */
#undef HAVE_SETGROUPS

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

/* Define to 1 if you have the `setlogin' function. */
#undef HAVE_SETLOGIN

/* Define to 1 if you have the `setluid' function. */
#undef HAVE_SETLUID

/* Define to 1 if you have the `setpassent' function. */
#undef HAVE_SETPASSENT

/* Define to 1 if you have the `setpcred' function. */
#undef HAVE_SETPCRED

/* Define to 1 if you have the `setproctitle' function. */
#undef HAVE_SETPROCTITLE

/* Define to 1 if you have the `setregid' function. */
#undef HAVE_SETREGID

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

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

/* Define to 1 if you have the `setreuid' function. */
#undef HAVE_SETREUID

/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT

/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID

/* Define to 1 if you have the `setutent' function. */
#undef HAVE_SETUTENT

/* Define to 1 if you have the `setutxdb' function. */
#undef HAVE_SETUTXDB

/* Define to 1 if you have the `setutxent' function. */
#undef HAVE_SETUTXENT

/* Define to 1 if you have the `setvbuf' function. */
#undef HAVE_SETVBUF

/* Define to 1 if you have the `set_id' function. */
#undef HAVE_SET_ID

/* Define to 1 if you have the `SHA256_Update' function. */
#undef HAVE_SHA256_UPDATE

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

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

/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION

/* Define to 1 if you have the `sigvec' function. */
#undef HAVE_SIGVEC

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

/* define if you have size_t data type */
#undef HAVE_SIZE_T

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

/* Define to 1 if you have the `socketpair' function. */
#undef HAVE_SOCKETPAIR

/* Have PEERCRED socket option */
#undef HAVE_SO_PEERCRED

/* define if you have ssize_t data type */
#undef HAVE_SSIZE_T

/* Fields in struct sockaddr_storage */
#undef HAVE_SS_FAMILY_IN_SS

/* Define to 1 if you have the `statfs' function. */
#undef HAVE_STATFS

/* Define to 1 if you have the `statvfs' function. */
#undef HAVE_STATVFS

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

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

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

/* Silly mkstemp() */
#undef HAVE_STRICT_MKSTEMP

/* 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 `strmode' function. */
#undef HAVE_STRMODE

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

/* Define to 1 if you have the `strnvis' function. */
#undef HAVE_STRNVIS

/* Define to 1 if you have the `strptime' function. */
#undef HAVE_STRPTIME

/* Define to 1 if you have the `strsep' function. */
#undef HAVE_STRSEP

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

/* Define to 1 if you have the `strtonum' function. */
#undef HAVE_STRTONUM

/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL

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

/* define if you have struct addrinfo data type */
#undef HAVE_STRUCT_ADDRINFO

/* define if you have struct in6_addr data type */
#undef HAVE_STRUCT_IN6_ADDR

/* Define to 1 if `pw_change' is member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_CHANGE

/* Define to 1 if `pw_class' is member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_CLASS

/* Define to 1 if `pw_expire' is member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_EXPIRE

/* Define to 1 if `pw_gecos' is member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_GECOS

/* define if you have struct sockaddr_in6 data type */
#undef HAVE_STRUCT_SOCKADDR_IN6

/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID

/* define if you have struct sockaddr_storage data type */
#undef HAVE_STRUCT_SOCKADDR_STORAGE

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

/* Define to 1 if the system has the type `struct timespec'. */
#undef HAVE_STRUCT_TIMESPEC

/* define if you have struct timeval */
#undef HAVE_STRUCT_TIMEVAL

/* Define to 1 if you have the `swap32' function. */
#undef HAVE_SWAP32

/* Define to 1 if you have the `sysconf' function. */
#undef HAVE_SYSCONF

/* Define if you have syslen in utmpx.h */
#undef HAVE_SYSLEN_IN_UTMPX

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

/* 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/bsdtty.h> header file. */
#undef HAVE_SYS_BSDTTY_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/cdefs.h> header file. */
#undef HAVE_SYS_CDEFS_H

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

/* Define if your system defines sys_errlist[] */
#undef HAVE_SYS_ERRLIST

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

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

/* Define if your system defines sys_nerr */
#undef HAVE_SYS_NERR

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

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

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

/* Define to 1 if you have the <sys/ptms.h> header file. */
#undef HAVE_SYS_PTMS_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/statvfs.h> header file. */
#undef HAVE_SYS_STATVFS_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/stream.h> header file. */
#undef HAVE_SYS_STREAM_H

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

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

/* Force use of sys/syslog.h on Ultrix */
#undef HAVE_SYS_SYSLOG_H

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

/* Define to 1 if you have the <sys/timers.h> header file. */
#undef HAVE_SYS_TIMERS_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 the <sys/un.h> header file. */
#undef HAVE_SYS_UN_H

/* Define to 1 if you have the `tcgetpgrp' function. */
#undef HAVE_TCGETPGRP

/* Define to 1 if you have the `tcsendbreak' function. */
#undef HAVE_TCSENDBREAK

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

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

/* Define if you have ut_time in utmp.h */
#undef HAVE_TIME_IN_UTMP

/* Define if you have ut_time in utmpx.h */
#undef HAVE_TIME_IN_UTMPX

/* Define to 1 if you have the `timingsafe_bcmp' function. */
#undef HAVE_TIMINGSAFE_BCMP

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

/* Define to 1 if you have the `truncate' function. */
#undef HAVE_TRUNCATE

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

/* Define if you have ut_tv in utmp.h */
#undef HAVE_TV_IN_UTMP

/* Define if you have ut_tv in utmpx.h */
#undef HAVE_TV_IN_UTMPX

/* Define if you have ut_type in utmp.h */
#undef HAVE_TYPE_IN_UTMP

/* Define if you have ut_type in utmpx.h */
#undef HAVE_TYPE_IN_UTMPX

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

/* Define to 1 if the system has the type `uintmax_t'. */
#undef HAVE_UINTMAX_T

/* define if you have uintxx_t data type */
#undef HAVE_UINTXX_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 if the system has the type `unsigned long long'. */
#undef HAVE_UNSIGNED_LONG_LONG

/* Define to 1 if you have the `updwtmp' function. */
#undef HAVE_UPDWTMP

/* Define to 1 if you have the `updwtmpx' function. */
#undef HAVE_UPDWTMPX

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

/* Define to 1 if you have the `user_from_uid' function. */
#undef HAVE_USER_FROM_UID

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

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

/* 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 `utmpname' function. */
#undef HAVE_UTMPNAME

/* Define to 1 if you have the `utmpxname' function. */
#undef HAVE_UTMPXNAME

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

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

/* define if you have u_char data type */
#undef HAVE_U_CHAR

/* define if you have u_int data type */
#undef HAVE_U_INT

/* define if you have u_int64_t data type */
#undef HAVE_U_INT64_T

/* define if you have u_intxx_t data type */
#undef HAVE_U_INTXX_T

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

/* Define if va_copy exists */
#undef HAVE_VA_COPY

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

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

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

/* Define to 1 if you have the `_getlong' function. */
#undef HAVE__GETLONG

/* Define to 1 if you have the `_getpty' function. */
#undef HAVE__GETPTY

/* Define to 1 if you have the `_getshort' function. */
#undef HAVE__GETSHORT

/* Define if you have struct __res_state _res as an extern */
#undef HAVE__RES_EXTERN

/* Define to 1 if you have the `__b64_ntop' function. */
#undef HAVE___B64_NTOP

/* Define to 1 if you have the `__b64_pton' function. */
#undef HAVE___B64_PTON

/* Define if compiler implements __FUNCTION__ */
#undef HAVE___FUNCTION__

/* Define if libc defines __progname */
#undef HAVE___PROGNAME

/* Fields in struct sockaddr_storage */
#undef HAVE___SS_FAMILY_IN_SS

/* Define if __va_copy exists */
#undef HAVE___VA_COPY

/* Define if compiler implements __func__ */
#undef HAVE___func__

/* Define this if you are using the Heimdal version of Kerberos V5 */
#undef HEIMDAL

/* Define if you need to use IP address instead of hostname in $DISPLAY */
#undef IPADDR_IN_DISPLAY

/* Detect IPv4 in IPv6 mapped addresses and treat as IPv4 */
#undef IPV4_IN_IPV6

/* Define if your system choked on IP TOS setting */
#undef IP_TOS_IS_BROKEN

/* Define if you want Kerberos 5 support */
#undef KRB5

/* Define if pututxline updates lastlog too */
#undef LASTLOG_WRITE_PUTUTXLINE

/* Define to whatever link() returns for "not supported" if it doesn't return
   EOPNOTSUPP. */
#undef LINK_OPNOTSUPP_ERRNO

/* Adjust Linux out-of-memory killer */
#undef LINUX_OOM_ADJUST

/* max value of long long calculated by configure */
#undef LLONG_MAX

/* min value of long long calculated by configure */
#undef LLONG_MIN

/* Account locked with pw(1) */
#undef LOCKED_PASSWD_PREFIX

/* String used in /etc/passwd to denote locked account */
#undef LOCKED_PASSWD_STRING

/* String used in /etc/passwd to denote locked account */
#undef LOCKED_PASSWD_SUBSTR

/* Some versions of /bin/login need the TERM supplied on the commandline */
#undef LOGIN_NEEDS_TERM

/* Some systems need a utmpx entry for /bin/login to work */
#undef LOGIN_NEEDS_UTMPX

/* Define if your login program cannot handle end of options ("--") */
#undef LOGIN_NO_ENDOPT

/* If your header files don't define LOGIN_PROGRAM, then use this (detected)
   from environment and PATH */
#undef LOGIN_PROGRAM_FALLBACK

/* Set this to your mail directory if you do not have _PATH_MAILDIR */
#undef MAIL_DIRECTORY

/* Need setpgrp to acquire controlling tty */
#undef NEED_SETPGRP

/* compiler does not accept __attribute__ on return types */
#undef NO_ATTRIBUTE_ON_RETURN_TYPE

/* Define if the concept of ports only accessible to superusers isn't known */
#undef NO_IPPORT_RESERVED_CONCEPT

/* Define if you don't want to use lastlog in session.c */
#undef NO_SSH_LASTLOG

/* Define if X11 doesn't support AF_UNIX sockets on that system */
#undef NO_X11_UNIX_SOCKETS

/* Define if EVP_DigestUpdate returns void */
#undef OPENSSL_EVP_DIGESTUPDATE_VOID

/* OpenSSL has ECC */
#undef OPENSSL_HAS_ECC

/* libcrypto has NID_X9_62_prime256v1 */
#undef OPENSSL_HAS_NISTP256

/* libcrypto has NID_secp384r1 */
#undef OPENSSL_HAS_NISTP384

/* libcrypto has NID_secp521r1 */
#undef OPENSSL_HAS_NISTP521

/* libcrypto has EVP AES CTR */
#undef OPENSSL_HAVE_EVPCTR

/* libcrypto has EVP AES GCM */
#undef OPENSSL_HAVE_EVPGCM

/* libcrypto is missing AES 192 and 256 bit functions */
#undef OPENSSL_LOBOTOMISED_AES

/* Define if you want the OpenSSL internally seeded PRNG only */
#undef OPENSSL_PRNG_ONLY

/* 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 you are using Solaris-derived PAM which passes pam_messages to
   the conversation function with an extra level of indirection */
#undef PAM_SUN_CODEBASE

/* Work around problematic Linux PAM modules handling of PAM_TTY */
#undef PAM_TTY_KLUDGE

/* must supply username to passwd */
#undef PASSWD_NEEDS_USERNAME

/* System dirs owned by bin (uid 2) */
#undef PLATFORM_SYS_DIR_UID

/* Port number of PRNGD/EGD random number socket */
#undef PRNGD_PORT

/* Location of PRNGD/EGD random number socket */
#undef PRNGD_SOCKET

/* read(1) can return 0 for a non-closed fd */
#undef PTY_ZEROREAD

/* Sandbox using capsicum */
#undef SANDBOX_CAPSICUM

/* Sandbox using Darwin sandbox_init(3) */
#undef SANDBOX_DARWIN

/* no privsep sandboxing */
#undef SANDBOX_NULL

/* Sandbox using setrlimit(2) */
#undef SANDBOX_RLIMIT

/* Sandbox using seccomp filter */
#undef SANDBOX_SECCOMP_FILTER

/* setrlimit RLIMIT_FSIZE works */
#undef SANDBOX_SKIP_RLIMIT_FSIZE

/* define if setrlimit RLIMIT_NOFILE breaks things */
#undef SANDBOX_SKIP_RLIMIT_NOFILE

/* Sandbox using systrace(4) */
#undef SANDBOX_SYSTRACE

/* Specify the system call convention in use */
#undef SECCOMP_AUDIT_ARCH

/* Define if your platform breaks doing a seteuid before a setuid */
#undef SETEUID_BREAKS_SETUID

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

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

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

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

/* Define if you want S/Key support */
#undef SKEY

/* Define if your skeychallenge() function takes 4 arguments (NetBSD) */
#undef SKEYCHALLENGE_4ARG

/* Define as const if snprintf() can declare const char *fmt */
#undef SNPRINTF_CONST

/* Define to a Set Process Title type if your system is supported by
   bsd-setproctitle.c */
#undef SPT_TYPE

/* Define if sshd somehow reacquires a controlling TTY after setsid() */
#undef SSHD_ACQUIRES_CTTY

/* Define if pam_chauthtok wants real uid set to the unpriv'ed user */
#undef SSHPAM_CHAUTHTOK_NEEDS_RUID

/* Use audit debugging module */
#undef SSH_AUDIT_EVENTS

/* Windows is sensitive to read buffer size */
#undef SSH_IOBUFSZ

/* non-privileged user for privilege separation */
#undef SSH_PRIVSEP_USER

/* Use tunnel device compatibility to OpenBSD */
#undef SSH_TUN_COMPAT_AF

/* Open tunnel devices the FreeBSD way */
#undef SSH_TUN_FREEBSD

/* Open tunnel devices the Linux tun/tap way */
#undef SSH_TUN_LINUX

/* No layer 2 tunnel support */
#undef SSH_TUN_NO_L2

/* Open tunnel devices the OpenBSD way */
#undef SSH_TUN_OPENBSD

/* Prepend the address family to IP tunnel traffic */
#undef SSH_TUN_PREPEND_AF

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

/* Define if you want a different $PATH for the superuser */
#undef SUPERUSER_PATH

/* syslog_r function is safe to use in in a signal handler */
#undef SYSLOG_R_SAFE_IN_SIGHAND

/* Support passwords > 8 chars */
#undef UNIXWARE_LONG_PASSWORDS

/* Specify default $PATH */
#undef USER_PATH

/* Define this if you want to use libkafs' AFS support */
#undef USE_AFS

/* Use BSM audit module */
#undef USE_BSM_AUDIT

/* Use btmp to log bad logins */
#undef USE_BTMP

/* Use libedit for sftp */
#undef USE_LIBEDIT

/* Use Linux audit module */
#undef USE_LINUX_AUDIT

/* Enable OpenSSL engine support */
#undef USE_OPENSSL_ENGINE

/* Define if you want to enable PAM support */
#undef USE_PAM

/* Use PIPES instead of a socketpair() */
#undef USE_PIPES

/* Define if you have Solaris process contracts */
#undef USE_SOLARIS_PROCESS_CONTRACTS

/* Define if you have Solaris projects */
#undef USE_SOLARIS_PROJECTS

/* Define if you shouldn't strip 'tty' from your ttyname in [uw]tmp */
#undef WITH_ABBREV_NO_TTY

/* Define if you want to enable AIX4's authenticate function */
#undef WITH_AIXAUTHENTICATE

/* Define if you have/want arrays (cluster-wide session managment, not C
   arrays) */
#undef WITH_IRIX_ARRAY

/* Define if you want IRIX audit trails */
#undef WITH_IRIX_AUDIT

/* Define if you want IRIX kernel jobs */
#undef WITH_IRIX_JOBS

/* Define if you want IRIX project management */
#undef WITH_IRIX_PROJECT

/* use libcrypto for cryptography */
#undef WITH_OPENSSL

/* Define if you want SELinux support. */
#undef WITH_SELINUX

/* include SSH protocol version 1 support */
#undef WITH_SSH1

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

/* Define if xauth is found in your path */
#undef XAUTH_PATH

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

/* log for bad login attempts */
#undef _PATH_BTMP

/* Full path of your "passwd" program */
#undef _PATH_PASSWD_PROG

/* Specify location of ssh.pid */
#undef _PATH_SSH_PIDDIR

/* Define if we don't have struct __res_state in resolv.h */
#undef __res_state

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

/* type to use in place of socklen_t if not defined */
#undef socklen_t
