/* config.h.in.  Generated from configure.ac by autoheader.  */
/* accconfig.h -- `autoheader' will generate config.h.in for zebra.
   Copyright (C) 1998, 1999 Kunihiro Ishiguro <kunihiro@zebra.org> */

/* Version of GNU Zebra */
#undef VERSION

/* Solaris on x86. */
#undef SOLARIS_X86

/* Package name of GNU Zebra */
#undef PACKAGE

/* Define if host is GNU/Linux */
#undef GNU_LINUX

/* Define if you have the AF_ROUTE socket.  */
#undef HAVE_AF_ROUTE

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

/* Define if you have the inet_ntop function.  */
#undef HAVE_INET_NTOP

/* Define if you have the inet_pton function.  */
#undef HAVE_INET_PTON

/* Define if you have the setproctitle function.  */
#undef HAVE_SETPROCTITLE

/* Define if you have ipv6 stack.  */
#undef HAVE_IPV6

/* Define if you wish to support ipv6 router advertisment.  */
/* #undef HAVE_RTADV */

/* whether system has GNU regex */
#undef HAVE_GNU_REGEX

/* whether system has SNMP library */
#undef HAVE_SNMP

/* whether sockaddr has a sa_len field */
#undef HAVE_SA_LEN

/* whether sockaddr_in has a sin_len field */
#undef HAVE_SIN_LEN

/* whether sockaddr_un has a sun_len field */
#undef HAVE_SUN_LEN

/* whether sockaddr_in6 has a sin6_scope_id field */
#undef HAVE_SIN6_SCOPE_ID

/* Define if there is socklen_t. */
#undef HAVE_SOCKLEN_T

/* Define if there is sockaddr_dl structure. */
#undef HAVE_SOCKADDR_DL

/* Define if there is ifaliasreq structure. */
#undef HAVE_IFALIASREQ

/* Define if there is in6_aliasreq structure. */
#undef HAVE_IN6_ALIASREQ

/* Define if there is rt_addrinfo structure. */
#undef HAVE_RT_ADDRINFO

/* Define if there is in_pktinfo structure. */
#undef HAVE_INPKTINFO

/* Define if you have the getrusage function. */
#undef HAVE_RUSAGE

/* Define if /proc/net/dev exists. */
#undef HAVE_PROC_NET_DEV

/* Define if /proc/net/if_inet6 exists. */
#undef HAVE_PROC_NET_IF_INET6

/* Define if NET_RT_IFLIST exists in sys/socket.h. */
#undef HAVE_NET_RT_IFLIST

/* Define if you have INRIA ipv6 stack.  */
#undef INRIA_IPV6

/* Define if you have KAME project ipv6 stack.  */
#undef KAME

/* Define if you have Linux ipv6 stack.  */
#undef LINUX_IPV6

/* Define if you have NRL ipv6 stack.  */
#undef NRL

/* Define if you have BSDI NRL IPv6 stack. */
#undef BSDI_NRL

/* Define if one-vty option is specified. */
#undef VTYSH

/* Define if interface aliases don't have distinct indeces */
#undef HAVE_BROKEN_ALIASES

/* Define if disable-bgp-announce option is specified. */
#undef DISABLE_BGP_ANNOUNCE

/* PAM support */
#undef USE_PAM

/* TCP/IP communication between zebra and protocol daemon. */
#undef HAVE_TCP_ZEBRA

/* The OSPF NSSA option (RFC1587). */
#undef HAVE_NSSA

/* The OSPF Opaque LSA option (RFC2370). */
#undef HAVE_OPAQUE_LSA

/* Traffic Engineering Extension to OSPF
   (draft-katz-yeung-ospf-traffic-06.txt). */
#undef HAVE_OSPF_TE

/* Linux netlink. */
#undef HAVE_NETLINK

/* PATHS */
#undef PATH_ZEBRA_PID
#undef PATH_RIPD_PID
#undef PATH_RIPNGD_PID
#undef PATH_BGPD_PID
#undef PATH_OSPFD_PID
#undef PATH_OSPF6D_PID

/* Define if Solaris */
#undef SUNOS_5

/* Define if FreeBSD 3.2 */
#undef FREEBSD_32

/* Define if OpenBSD */
#undef OPEN_BSD

#ifdef HAVE_IPV6
#ifdef KAME
#ifndef INET6
#define INET6
#endif /* INET6 */
#endif /* KAME */
#endif /* HAVE_IPV6 */

#ifdef SUNOS_5
typedef unsigned int u_int32_t; 
typedef unsigned short u_int16_t; 
typedef unsigned short u_int8_t; 
#endif /* SUNOS_5 */

#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#endif /* HAVE_SOCKLEN_T */

/* BSDI */
#undef BSDI_NRL

/* Disable BGP installation to zebra */
#undef DISABLE_BGP_ANNOUNCE

/* FreeBSD 3.2 */
#undef FREEBSD_32

/* GNU Linux */
#undef GNU_LINUX

/* Define if you have the <asm/types.h> header file. */
#undef HAVE_ASM_TYPES_H

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

/* Broken Alias */
#undef HAVE_BROKEN_ALIASES

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

/* Define if you have the `daemon' function. */
#undef HAVE_DAEMON

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

/* Define if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS

/* GNU regexp library */
#undef HAVE_GNU_REGEX

/* ifaliasreq */
#undef HAVE_IFALIASREQ

/* Define if you have the `if_indextoname' function. */
#undef HAVE_IF_INDEXTONAME

/* Define if you have the `if_nametoindex' function. */
#undef HAVE_IF_NAMETOINDEX

/* in6_aliasreq */
#undef HAVE_IN6_ALIASREQ

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

/* Define if you have the <inet/nd.h> header file. */
#undef HAVE_INET_ND_H

/* inet_ntop */
#undef HAVE_INET_NTOP

/* inet_pton */
#undef HAVE_INET_PTON

/* in_pktinfo */
#undef HAVE_INPKTINFO

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

/* IPv6 */
#undef HAVE_IPV6

/* Define if you have the <kvm.h> header file. */
#undef HAVE_KVM_H

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

/* Define if you have the `kvm' library (-lkvm). */
#undef HAVE_LIBKVM

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

/* Define if you have the `ncurses' library (-lncurses). */
#undef HAVE_LIBNCURSES

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

/* Define if you have the `readline' library (-lreadline). */
#undef HAVE_LIBREADLINE

/* Define if you have the `resolv' library (-lresolv). */
#undef HAVE_LIBRESOLV

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

/* Define if you have the `tinfo' library (-ltinfo). */
#undef HAVE_LIBTINFO

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

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

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

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

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

/* Define if you have the <netinet6/nd6.h> header file. */
#undef HAVE_NETINET6_ND6_H

/* Define if you have the <netinet/icmp6.h> header file. */
#undef HAVE_NETINET_ICMP6_H

/* Define if you have the <netinet/in6.h> header file. */
#undef HAVE_NETINET_IN6_H

/* Define if you have the <netinet/in6_var.h> header file. */
#undef HAVE_NETINET_IN6_VAR_H

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

/* Define if you have the <netinet/in_var.h> header file. */
#undef HAVE_NETINET_IN_VAR_H

/* netlink */
#undef HAVE_NETLINK

/* SNMP */
#undef HAVE_NETSNMP

/* Define if you have the <net/if_dl.h> header file. */
#undef HAVE_NET_IF_DL_H

/* Define if you have the <net/if_var.h> header file. */
#undef HAVE_NET_IF_VAR_H

/* Define if you have the <net/netopt.h> header file. */
#undef HAVE_NET_NETOPT_H

/* NET_RT_IFLIST */
#undef HAVE_NET_RT_IFLIST

/* OSPF NSSA */
#undef HAVE_NSSA

/* OSPF Opaque LSA */
#undef HAVE_OPAQUE_LSA

/* OSPF TE */
#undef HAVE_OSPF_TE

/* /proc/net/dev */
#undef HAVE_PROC_NET_DEV

/* /proc/net/if_inet6 */
#undef HAVE_PROC_NET_IF_INET6

/* rt_addrinfo */
#undef HAVE_RT_ADDRINFO

/* rusage */
#undef HAVE_RUSAGE

/* sa_len */
#undef HAVE_SA_LEN

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

/* scope id */
#undef HAVE_SIN6_SCOPE_ID

/* sin_len */
#undef HAVE_SIN_LEN

/* SNMP */
#undef HAVE_SNMP

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

/* sockaddr_dl */
#undef HAVE_SOCKADDR_DL

/* socklen_t */
#undef HAVE_SOCKLEN_T

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

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

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

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

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

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

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

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

/* sun_len */
#undef HAVE_SUN_LEN

/* Define if you have the <sys/conf.h> header file. */
#undef HAVE_SYS_CONF_H

/* Define if you have the <sys/ksym.h> header file. */
#undef HAVE_SYS_KSYM_H

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

/* Define if you have the <sys/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_H

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

/* Define if you have the <sys/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H

/* Define if you have the <sys/times.h> header file. */
#undef HAVE_SYS_TIMES_H

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

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

/* Use TCP for zebra communication */
#undef HAVE_TCP_ZEBRA

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

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

/* Inria IPv6 */
#undef INRIA_IPV6

/* KAME IPv6 */
#undef KAME

/* Linux IPv6 */
#undef LINUX_IPV6

/* NRL */
#undef NRL

/* OpenBSD */
#undef OPEN_BSD

/* Name of package */
#undef PACKAGE

/* bgpd PID */
#undef PATH_BGPD_PID

/* ospf6d PID */
#undef PATH_OSPF6D_PID

/* ospfd PID */
#undef PATH_OSPFD_PID

/* ripd PID */
#undef PATH_RIPD_PID

/* ripngd PID */
#undef PATH_RIPNGD_PID

/* zebra PID */
#undef PATH_ZEBRA_PID

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

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

/* SunOS 5 */
#undef SUNOS_5

/* SNMP */
#undef UCD_COMPATIBLE

/* Use PAM for authentication */
#undef USE_PAM

/* Version number of package */
#undef VERSION

/* VTY shell */
#undef VTYSH

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

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

/* Define to empty if `const' does not conform to ANSI C. */
#undef const
