/* config.h.  Generated by configure.  */
/* source: Config/config.HP-UX-B-11-11.h */
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
/* Published under the GNU General Public License V.2, see file COPYING */

#ifndef __config_h_included
#define __config_h_included 1

/* Define to empty if the keyword does not work.  */
/* #undef const */

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

/* Define if your struct stat has st_blksize.  */
#define HAVE_ST_BLKSIZE 1

/* Define if your struct stat has st_blocks.  */
#define HAVE_ST_BLOCKS 1

/* Define if your struct stat has st_rdev.  */
#define HAVE_ST_RDEV 1

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

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

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

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

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

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

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

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

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

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

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

/* Define if you have the select function.  */
#define HAVE_SELECT 1

/* Define if you have the poll function.  */
#define HAVE_POLL 1

/* Define if you have the socket function.  */
#define HAVE_SOCKET 1

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

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

/* Define if you have the strstr function.  */
#define HAVE_STRSTR 1

/* Define if you have the strtod function.  */
#define HAVE_STRTOD 1

/* Define if you have the strtol function.  */
#define HAVE_STRTOL 1

/* Define if you have the strtoul function.  */
#define HAVE_STRTOUL 1

/* Define if you have the uname function.  */
#define HAVE_UNAME 1

/* Define if you have the getpgid function.  */
#define HAVE_GETPGID 1

/* Define if you have the getsid function.  */
#define HAVE_GETSID 1

/* Define if you have the nanosleep function.  */
#define HAVE_NANOSLEEP 1

/* Define if you have the getaddrinfo function.  */
#define HAVE_GETADDRINFO 1

/* Define if you have the getipnodebyname function.  */
#define HAVE_GETIPNODEBYNAME 1

/* Define if you have the setgroups function. */
#define HAVE_SETGROUPS 1

/* Define if you have the inet_aton function. */
#define HAVE_INET_ATON 1

/* Define if you have the memrchr function. */
/* #undef HAVE_MEMRCHR */

/* Define if you have the sigaction function */
#define HAVE_SIGACTION 1

/* Define if you have the stat64 function */
#define HAVE_STAT64 1

/* Define if you have the fstat64 function */
#define HAVE_FSTAT64 1

/* Define if you have the lstat64 function */
#define HAVE_LSTAT64 1

/* Define if you have the lseek64 function */
#define HAVE_LSEEK64 1

/* Define if you have the truncate64 function */
#define HAVE_TRUNCATE64 1

/* Define if you have the ftruncate64 function */
#define HAVE_FTRUNCATE64 1

/* Define if you have the strtoll function */
/* #undef HAVE_STRTOLL */

/* Define if you have the hstrerror function */
/* #undef HAVE_HSTRERROR */

/* Define if you have the inet_ntop function */
#define HAVE_INET_NTOP 1

/* Define if you have the hstrerror prototype */
/* #undef HAVE_PROTOTYPE_HSTRERROR */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Define if you have the <sys/uio.h> header file.  */
#define HAVE_SYS_UIO_H 1

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

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

/* Define if you have the <sys/un.h> header file.  */
#define HAVE_SYS_UN_H 1

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

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

/* Define if you have the <netinet/in_systm.h> header file.  */
#define HAVE_NETINET_IN_SYSTM_H 1

/* Define if you have the <netinet/ip.h> header file.  */
#define HAVE_NETINET_IP_H 1

/* Define if you have the <netinet/tcp.h> header file.  */
#define HAVE_NETINET_TCP_H 1

/* Define if you have the <netinet/ip6.h> header file.  */
#define HAVE_NETINET_IP6_H 1

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

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

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

/* Define if you have the <net/if.h> header file.  */
#define HAVE_NET_IF_H 1

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

/* Define if you have the <sys/utsname.h> header file.  */
#define HAVE_SYS_UTSNAME_H 1

/* Define if you have the <sys/select.h> header file. (AIX) */
/* #undef HAVE_SYS_SELECT_H */

/* Define if you have the <sys/file.h> header file. (AIX) */
#define HAVE_SYS_FILE_H 1

/* Define if you have the <util.h> header file. (NetBSD, OpenBSD: openpty()) */
/* #undef HAVE_UTIL_H */

/* Define if you have the <libutil.h> header file. (FreeBSD: openpty()) */
/* #undef HAVE_LIBUTIL_H */

/* Define if you have the <sys/stropts.h> header file. (stream opts on SunOS)*/
#define HAVE_SYS_STROPTS_H 1

/* Define if you have the <regex.h> header file. */
#define HAVE_REGEX_H 1

/* Define if you have the <linux/fs.h> header file. */
/* #undef HAVE_LINUX_FS_H */

/* Define if you have the <linux/ext2_fs.h> header file. */
/* #undef HAVE_LINUX_EXT2_FS_H */

/* Define if you have the <readline/readline.h> header file. */
/* #undef HAVE_READLINE_READLINE_H */

/* Define if you have the <readline/history.h> header file. */
/* #undef HAVE_READLINE_HISTORY_H */

/* Define if you have the readline library. */
/* #undef HAVE_LIBREADLINE */

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

/* Define if you have the floor function */
/* #undef HAVE_FLOOR */

/* some platforms need _XOPEN_EXTENDED_SOURCE to get syslog headers (AIX4.1) */
/* #undef _XOPEN_EXTENDED_SOURCE */

/* fdset may have component fds_bits or __fds_bits */
#define HAVE_FDS_BITS 1

/* Define if your struct termios has component c_ispeed */
/* #undef HAVE_TERMIOS_ISPEED */

/* the offset of c_ispeed in struct termios - usable in an speed_t array.
   Applies only when HAVE_TERMIOS_ISPEED is set */
/* #undef ISPEED_OFFSET */

/* the offset of c_ospeed in struct termios - see ISPEED_OFFSET */
#ifdef ISPEED_OFFSET
#  define OSPEED_OFFSET (ISPEED_OFFSET+1)
#else
/* #  undef OSPEED_OFFSET */
#endif

/* Define if your termios.h likes _SVID3 defined */
/* #undef _SVID3 */

/* Define if you have struct timespec (e.g. for nanosleep) */
#define HAVE_STRUCT_TIMESPEC 1

/* Define if you have struct linger */
#define HAVE_STRUCT_LINGER 1

/* Define if you have struct ip_mreq */
#define HAVE_STRUCT_IP_MREQ 1

/* Define if you have struct ip_mreqn */
/* #undef HAVE_STRUCT_IP_MREQN */

/* Define if you have struct ipv6_mreq */
#define HAVE_STRUCT_IPV6_MREQ 1

/* Define if you have struct ifreq */
#define HAVE_STRUCT_IFREQ 1

/* Define if you have struct ifreq.ifr_index */
#define HAVE_STRUCT_IFREQ_IFR_INDEX 1

/* Define if you have struct ifreq.ifr_ifindex */
/* #undef HAVE_STRUCT_IFREQ_IFR_IFINDEX */

/* Define if your struct sockaddr has sa_len */
/* #undef HAVE_STRUCT_SOCKADDR_SALEN */

/* there are several implementations of sockaddr_in6 */
#define HAVE_IP6_SOCKADDR 0

/* Define if you have struct iovec */
#define HAVE_STRUCT_IOVEC 1

/* define if your struct msghdr has msg_control */
/* #undef HAVE_STRUCT_MSGHDR_MSGCONTROL */

/* define if your struct msghdr has msg_controllen */
/* #undef HAVE_STRUCT_MSGHDR_MSGCONTROLLEN */

/* define if your struct msghdr has msg_flag */
/* #undef HAVE_STRUCT_MSGHDR_MSGFLAGS */

/* define if your struct ip has ip_hl; otherwise assume ip_vhl */
#define HAVE_STRUCT_IP_IP_HL 1

/* Define if you have the setenv function */
/* #undef HAVE_SETENV */

/* Define if you have the flock function */
/* #undef HAVE_FLOCK */

/* Define if you have the openpty function */
/* #undef HAVE_OPENPTY */

/* Define if you have the grantpt function */
#define HAVE_GRANTPT 1

/* Define if you have the unlockpt function */
#define HAVE_UNLOCKPT 1

/* Define if you have the ptsname function */
#define HAVE_PTSNAME 1

/* Define if you have the /dev/ptmx pseudo terminal multiplexer */
#define HAVE_DEV_PTMX 1

/* Define if you have the /dev/ptc pseudo terminal multiplexer */
/* #undef HAVE_DEV_PTC */

/* Define if you have the long long type */
#define HAVE_TYPE_LONGLONG 1

/* is socklen_t already typedef'd? */
#define HAVE_TYPE_SOCKLEN 1

/* Define if you have the struct stat64 type */
/* #undef HAVE_TYPE_STAT64 */

/* Define if you have the struct off64_t type */
#define HAVE_TYPE_OFF64 1

/* is sighandler_t already typedef'd? */
/* #undef HAVE_TYPE_SIGHANDLER */

/* is uint8_t already defined? */
#define HAVE_TYPE_UINT8 1

/* is uint16_t already defined? */
#define HAVE_TYPE_UINT16 1

/* is uint32_t already defined? */
#define HAVE_TYPE_UINT32 1

/* is uint64_t already defined? */
#define HAVE_TYPE_UINT64 1

/* Define if you have the printf "Z" modifier */
/* #undef HAVE_FORMAT_Z */

/* Define the shift offset of the CRDLY mask */
#define CRDLY_SHIFT 9

/* Define the shift offset of the TABDLY mask */
#define TABDLY_SHIFT 11

/* Define the shift offset of the CSIZE mask */
#define CSIZE_SHIFT 5

/* Define if you have tcpwrappers (libwrap, tcpd) and it declares hosts_allow_table */
/* #undef HAVE_HOSTS_ALLOW_TABLE */
#if defined(HAVE_HOSTS_ALLOW_TABLE) && HAVE_HOSTS_ALLOW_TABLE
#   define HAVE_HOSTS_DENY_TABLE 1
#else
/* #   undef HAVE_HOSTS_DENY_TABLE */
#endif

/* 1..short, 3..int, 5..long; 2,4,6..unsigned */
#define HAVE_BASIC_SIZE_T 6 /* unsigned long */
#define HAVE_BASIC_MODE_T 2 /* unsigned short */
#define HAVE_BASIC_PID_T 3 /* int */
#define HAVE_BASIC_UID_T 3 /* int */
#define HAVE_BASIC_GID_T 3 /* int */
#define HAVE_BASIC_TIME_T 5 /* long */
#define HAVE_BASIC_OFF64_T 7 /* long long */

#define HAVE_BASIC_SOCKLEN_T 6 /* unsigned long */

#define HAVE_TYPEOF_ST_DEV 3 /* int */
#define HAVE_TYPEOF_ST_INO 6 /* unsigned long */
#define HAVE_TYPEOF_ST_NLINK 2 /* unsigned short */
#define HAVE_TYPEOF_ST_SIZE 5 /* long */
#define HAVE_TYPEOF_ST_BLKSIZE 5 /* long */
#define HAVE_TYPEOF_ST_BLOCKS 5 /* long */

#define HAVE_TYPEOF_ST64_DEV 0 /* unknown, taking default */
#define HAVE_TYPEOF_ST64_INO 0 /* unknown, taking default */
#define HAVE_TYPEOF_ST64_NLINK 0 /* unknown, taking default */
#define HAVE_TYPEOF_ST64_SIZE 0 /* unknown, taking default */
#define HAVE_TYPEOF_ST64_BLKSIZE 0 /* unknown, taking default */
#define HAVE_TYPEOF_ST64_BLOCKS 0 /* unknown, taking default */

/* #undef HAVE_TYPEOF_STRUCT_TIMEVAL_TV_USEC */

#define HAVE_TYPEOF_RLIM_MAX 6 /* unsigned long */

/* Define if you have the /proc filesystem */
/* #undef HAVE_PROC_DIR */

/* Define if you have the /proc/$$/fd directories */
/* #undef HAVE_PROC_DIR_FD */

#define WITH_HELP 1
#define WITH_STDIO 1
#define WITH_FDNUM 1
#define WITH_FILE 1
#define WITH_CREAT 1
#define WITH_GOPEN 1
#define WITH_TERMIOS 1
#define WITH_PIPE 1
#define WITH_UNIX 1
/* #undef WITH_ABSTRACT_UNIXSOCKET */
#define WITH_IP4 1
#define WITH_IP6 1
#define WITH_RAWIP 1
#define WITH_TCP 1
#define WITH_UDP 1
#define WITH_LISTEN 1
#define WITH_SOCKS4 1
#define WITH_SOCKS4A 1
#define WITH_PROXY 1
#define WITH_EXEC 1
#define WITH_SYSTEM 1
/* #undef WITH_READLINE */
/* #undef WITH_TUN */
#define WITH_PTY 1
#define WITH_EXT2 1
#define WITH_OPENSSL 1
/* #undef WITH_FIPS */
/* #undef OPENSSL_FIPS */
/* #undef WITH_LIBWRAP */
/* #undef HAVE_TCPD_H */
/* #undef HAVE_LIBWRAP */

#define WITH_SYCLS 1
#define WITH_FILAN 1
#define WITH_RETRY 1

#define WITH_MSGLEVEL 0

#endif /* !defined(__config_h_included) */
