/* 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 to 1 if you have the <asm/types.h> header file. */
#undef HAVE_ASM_TYPES_H

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

/* Broken Alias */
#undef HAVE_BROKEN_ALIASES

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

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

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

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

/* GNU regexp library */
#undef HAVE_GNU_REGEX

/* ifaliasreq */
#undef HAVE_IFALIASREQ

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

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

/* in6_aliasreq */
#undef HAVE_IN6_ALIASREQ

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

/* Define to 1 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 to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* IPv6 */
#undef HAVE_IPV6

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

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

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

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

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

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

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

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

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

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

/* 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 <linux/version.h> header file. */
#undef HAVE_LINUX_VERSION_H

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

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

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

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

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

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

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

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

/* netlink */
#undef HAVE_NETLINK

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

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

/* Define to 1 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 to 1 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 to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF

/* sockaddr_dl */
#undef HAVE_SOCKADDR_DL

/* socklen_t */
#undef HAVE_SOCKLEN_T

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

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

/* sun_len */
#undef HAVE_SUN_LEN

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

/* Define to 1 if you have the <sys/ksym.h> header file. */
#undef HAVE_SYS_KSYM_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/sockio.h> header file. */
#undef HAVE_SYS_SOCKIO_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/sysctl.h> header file. */
#undef HAVE_SYS_SYSCTL_H

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

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

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

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

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

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

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