diff --git a/configure.in b/configure.in
index bee8296..c274a0d 100755
--- a/configure.in
+++ b/configure.in
@@ -7,7 +7,7 @@
 AC_PREREQ(2.13)
 
 AC_INIT(lib/zebra.h)
-AM_INIT_AUTOMAKE(zebra, 0.93)
+AM_INIT_AUTOMAKE(zebra, 0.94)
 AM_CONFIG_HEADER(config.h)
 
 dnl -----------------------------------
@@ -69,6 +69,8 @@
 [  --disable-ripngd        do not build ripngd])
 AC_ARG_ENABLE(ospfd,
 [  --disable-ospfd         do not build ospfd])
+AC_ARG_ENABLE(ospfclient,
+[  --disable-ospfclient         do not build ospfclient])
 AC_ARG_ENABLE(ospf6d,
 [  --disable-ospf6d        do not build ospf6d])
 AC_ARG_ENABLE(bgp-announce,
@@ -102,25 +104,25 @@
     echo "Sorry, you can't use netlink with broken aliases"
     exit 1
   fi
-  AC_DEFINE(HAVE_BROKEN_ALIASES)
+  AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
   enable_netlink=no
 fi
 
 if test "${enable_tcp_zebra}" = "yes"; then
-  AC_DEFINE(HAVE_TCP_ZEBRA)
+  AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
 fi
 
 if test "${enable_nssa}" = "yes"; then
-  AC_DEFINE(HAVE_NSSA)
+  AC_DEFINE(HAVE_NSSA,,OSPF NSSA)
 fi
 
 if test "${enable_opaque_lsa}" = "yes"; then
-  AC_DEFINE(HAVE_OPAQUE_LSA)
+  AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
 fi
 
 if test "${enable_ospf_te}" = "yes"; then
-  AC_DEFINE(HAVE_OPAQUE_LSA)
-  AC_DEFINE(HAVE_OSPF_TE)
+  AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
+  AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
 fi
 
 dnl if test "${enable_rtadv}" = "yes"; then
@@ -162,30 +164,30 @@
 case "$host" in
   *-sunos5.6* | *-solaris2.6*)
       opsys=sol2-6
-      AC_DEFINE(SUNOS_5)
+      AC_DEFINE(SUNOS_5,,SunOS 5)
       AC_CHECK_LIB(xnet, main)
       CURSES=-lcurses
   ;;
   *-sunos5* | *-solaris2*)
-      AC_DEFINE(SUNOS_5)
+      AC_DEFINE(SUNOS_5,,SunOS 5)
       AC_CHECK_LIB(socket, main)
       AC_CHECK_LIB(nsl, main)
       CURSES=-lcurses
   ;;
   *-linux-*)
       opsys=gnu-linux
-      AC_DEFINE(GNU_LINUX)
+      AC_DEFINE(GNU_LINUX,,GNU Linux)
   ;;
   *-nec-sysv4*)
       AC_CHECK_LIB(nsl, gethostbyname)
       AC_CHECK_LIB(socket, socket)
   ;;
   *-freebsd3.2)
-      AC_DEFINE(FREEBSD_32)
+      AC_DEFINE(FREEBSD_32,,FreeBSD 3.2)
   ;;
   *-openbsd*)
       opsys=openbsd
-      AC_DEFINE(OPEN_BSD)
+      AC_DEFINE(OPEN_BSD,,OpenBSD)
   ;;
   *-bsdi*)
       opsys=bsdi
@@ -194,18 +196,12 @@
   ;;
 esac
 
-case "${host_cpu}-${host_os}" in
-  i?86-solaris*)
-    AC_DEFINE(SOLARIS_X86)
-  ;;
-esac
-
 dnl ---------------------
 dnl Integrated VTY option
 dnl ---------------------
 case "${enable_vtysh}" in
   "yes") VTYSH="vtysh";
-         AC_DEFINE(VTYSH)
+         AC_DEFINE(VTYSH,,VTY shell)
 	 AC_CHECK_LIB(tinfo, tputs, , AC_CHECK_LIB(ncurses, tputs))
          AC_CHECK_LIB(readline, main)
          if test $ac_cv_lib_readline_main = no; then
@@ -233,9 +229,9 @@
 dnl with RedHat 6.2 and Debian 2.2 or better.
 AC_CHECK_LIB(pam, pam_start,
   [AC_CHECK_LIB(pam, misc_conv,
-    [AC_DEFINE(USE_PAM)
+    [AC_DEFINE(USE_PAM,,Use PAM for authentication)
      LIBPAM="-lpam"],
-    [AC_DEFINE(USE_PAM)
+    [AC_DEFINE(USE_PAM,,Use PAM for authentication)
      LIBPAM="-lpam -lpam_misc"]
     )
   ],
@@ -257,36 +253,7 @@
 dnl -------------------------------
 dnl Endian-ness check
 dnl -------------------------------
-AC_DEFUN(ZEBRA_AC_C_BIGENDIAN,
-[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
-[ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/param.h>], [
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
-if test $ac_cv_c_bigendian = unknown; then
-AC_TRY_RUN([main () {
-  /* Are we little or big endian?  From Harbison&Steele.  */
-  union
-  {
-    long l;
-    char c[sizeof (long)];
-  } u;
-  u.l = 1;
-  exit (u.c[sizeof (long) - 1] == 1);
-}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)
-fi])
-if test $ac_cv_c_bigendian = yes; then
-  AC_DEFINE(WORDS_BIGENDIAN,1,Big endian words)
-fi
-])
+AC_WORDS_BIGENDIAN
 
 dnl -------------------------------
 dnl check the size in byte of the C
@@ -310,31 +277,17 @@
   if test "${enable_netlink}" = "yes";then
     AC_MSG_RESULT(netlink)
     RT_METHOD=rt_netlink.o
-    AC_DEFINE(HAVE_NETLINK)
+    AC_DEFINE(HAVE_NETLINK,,netlink)
     netlink=yes
   elif test "${enable_netlink}" = "no"; then
     AC_MSG_RESULT(ioctl)
     RT_METHOD=rt_ioctl.o
     netlink=no
   else
-    AC_EGREP_CPP(yes,
-    [#include <linux/autoconf.h>
-#include <linux/version.h>
-#if LINUX_VERSION_CODE > 131328  /* 2.1.0 or later */
-#ifdef CONFIG_RTNETLINK
-  yes
-#endif
-#endif
-#if LINUX_VERSION_CODE > 132112  /* 2.4.17 or later */
-  yes
-#endif
-    ],
-   [AC_MSG_RESULT(netlink)
+    AC_MSG_RESULT(netlink)
     RT_METHOD=rt_netlink.o
-    AC_DEFINE(HAVE_NETLINK)
-    netlink=yes],
-   [AC_MSG_RESULT(ioctl)
-    RT_METHOD=rt_ioctl.o])
+    AC_DEFINE(HAVE_NETLINK,,netlink)
+    netlink=yes
   fi
 else
   if test "$opsys" = "sol2-6";then
@@ -355,8 +308,7 @@
     exit (1);
   exit (0);
 }],
-  [AC_DEFINE(HAVE_AF_ROUTE)
-   KERNEL_METHOD=kernel_socket.o
+  [KERNEL_METHOD=kernel_socket.o
    RT_METHOD=rt_socket.o
    AC_MSG_RESULT(socket)],
   [RT_METHOD=rt_ioctl.o
@@ -410,7 +362,7 @@
   elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
     AC_MSG_RESULT(sysctl)
     IF_METHOD=if_sysctl.o
-    AC_DEFINE(HAVE_NET_RT_IFLIST)
+    AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
   else
     AC_MSG_RESULT(ioctl)
     IF_METHOD=if_ioctl.o
@@ -422,12 +374,12 @@
 dnl check proc file system.
 dnl -----------------------
 if test -r /proc/net/dev; then
-  AC_DEFINE(HAVE_PROC_NET_DEV)
+  AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
   IF_PROC=if_proc.o
 fi
 
 if test -r /proc/net/if_inet6; then
-  AC_DEFINE(HAVE_PROC_NET_IF_INET6)
+  AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
   IF_PROC=if_proc.o
 fi
 AC_SUBST(IF_PROC)
@@ -469,8 +421,8 @@
 dnl ----------
 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(INRIA_IPV6)
+   AC_DEFINE(HAVE_IPV6,,IPv6)
+   AC_DEFINE(INRIA_IPV6,,Inria IPv6)
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    LIB_IPV6=""
@@ -481,8 +433,8 @@
 dnl ---------
 if grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(KAME)
+   AC_DEFINE(HAVE_IPV6,,IPv6)
+   AC_DEFINE(KAME,,KAME IPv6)
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
@@ -495,12 +447,12 @@
 dnl ---------
 if grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
    zebra_cv_ipv6=yes
-   AC_DEFINE(HAVE_IPV6)
-   AC_DEFINE(NRL)
+   AC_DEFINE(HAVE_IPV6,,IPv6)
+   AC_DEFINE(NRL,,NRL)
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test x"$opsys" = x"bsdi";then
-      AC_DEFINE(BSDI_NRL)
+      AC_DEFINE(BSDI_NRL,,BSDI)
       AC_MSG_RESULT(BSDI_NRL)
    else
       AC_MSG_RESULT(NRL)
@@ -535,7 +487,7 @@
 #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
   yes
 #endif], [glibc=yes; AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
-   AC_DEFINE(LINUX_IPV6)   
+   AC_DEFINE(LINUX_IPV6,,Linux IPv6)   
    RIPNGD="ripngd"
    OSPF6D="ospf6d"
    if test "$glibc" != "yes"; then
@@ -584,6 +536,12 @@
   OSPFD="ospfd"
 fi
 
+if test "${enable_ospfclient}" = "no";then
+  OSPFCLIENT=""
+else
+  OSPFCLIENT="ospfclient"
+fi
+
 case "${enable_ripngd}" in
   "yes") RIPNGD="ripngd";;
   "no" ) RIPNGD="";;
@@ -597,7 +555,7 @@
 esac
 
 if test "${enable_bgp_announce}" = "no";then
-  AC_DEFINE(DISABLE_BGP_ANNOUNCE)
+  AC_DEFINE(DISABLE_BGP_ANNOUNCE,,Disable BGP installation to zebra)
 fi
 
 AC_SUBST(ZEBRA)
@@ -609,8 +567,9 @@
 AC_SUBST(VTYSH)
 AC_SUBST(INCLUDES)
 AC_SUBST(CURSES)
-AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP)])
-AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON)])
+AC_SUBST(OSPFCLIENT)
+AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
+AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
 AC_CHECK_LIB(crypt, crypt)
 AC_CHECK_LIB(resolv, res_init)
 AC_CHECK_LIB(m, main)
@@ -627,22 +586,11 @@
 dnl ---------------------------
 dnl AC_MSG_CHECKING(whether system has GNU regex)
 AC_CHECK_LIB(c, regexec,
-[AC_DEFINE(HAVE_GNU_REGEX)
+[AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
  LIB_REGEX=""],
 [LIB_REGEX="regex.o"])
 AC_SUBST(LIB_REGEX)
 
-dnl AC_MSG_CHECKING(whether system has GNU regex)
-dnl if grep RE_NO_GNU_OPS /usr/include/regex.h >/dev/null 2>&1; then
-dnl   AC_MSG_RESULT(yes)
-dnl   AC_DEFINE(HAVE_GNU_REGEX)
-dnl   LIB_REGEX=""
-dnl else
-dnl   AC_MSG_RESULT(no)
-dnl   LIB_REGEX="regex.o"
-dnl fi
-dnl AC_SUBST(LIB_REGEX)
-
 dnl ------------------
 dnl check SNMP library
 dnl ------------------
@@ -670,18 +618,24 @@
 	LIBS="${old_libs}"
   fi
   if test "${HAVE_SNMP}" = "yes"; then
-    for ac_snmp in /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
+    for ac_snmp in /usr/include/net-snmp/library/asn1.h /usr/include/ucd-snmp/asn1.h /usr/local/include/ucd-snmp/asn1.h /dev/null
     do
       test -f "${ac_snmp}" && break
     done
     case ${ac_snmp} in
+      /usr/include/net-snmp/*)
+                  AC_DEFINE(HAVE_SNMP,,SNMP)
+                  AC_DEFINE(UCD_COMPATIBLE,,SNMP)
+                  CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
+                  LIBS="${LIBS} -lsnmp"
+                  ;;
       /usr/include/ucd-snmp/*) 
-                  AC_DEFINE(HAVE_SNMP)
+                  AC_DEFINE(HAVE_SNMP,,SNMP)
                   CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
     		  LIBS="${LIBS} -lsnmp"
                   ;;
       /usr/local/include/ucd-snmp/*) 
-                  AC_DEFINE(HAVE_SNMP)
+                  AC_DEFINE(HAVE_SNMP,,SNMP)
   	          CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
   		  LIBS="${LIBS} -L/usr/local/lib -lsnmp"
                   ;;
@@ -700,7 +654,7 @@
 #include <sys/socket.h>
 ],[static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SA_LEN)],
+ AC_DEFINE(HAVE_SA_LEN,,sa_len)],
  AC_MSG_RESULT(no))
 
 dnl ----------------------------
@@ -711,7 +665,7 @@
 #include <netinet/in.h>
 ],[static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN_LEN)],
+ AC_DEFINE(HAVE_SIN_LEN,,sin_len)],
  AC_MSG_RESULT(no))
 
 dnl ----------------------------
@@ -722,7 +676,7 @@
 #include <sys/un.h>
 ],[static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SUN_LEN)],
+ AC_DEFINE(HAVE_SUN_LEN,,sun_len)],
  AC_MSG_RESULT(no))
 
 dnl -----------------------------------
@@ -734,7 +688,7 @@
 #include <netinet/in.h>
 ],[static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SIN6_SCOPE_ID)],
+ AC_DEFINE(HAVE_SIN6_SCOPE_ID,,scope id)],
  AC_MSG_RESULT(no))
 fi
 
@@ -747,7 +701,7 @@
 #include <netinet/in.h>
 ],[socklen_t ac_x;],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKLEN_T)],
+ AC_DEFINE(HAVE_SOCKLEN_T,,socklen_t)],
  AC_MSG_RESULT(no))
 
 dnl ------------------------
@@ -757,7 +711,7 @@
 AC_EGREP_HEADER(sockaddr_dl,
 net/if_dl.h,
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_SOCKADDR_DL)],
+ AC_DEFINE(HAVE_SOCKADDR_DL,,sockaddr_dl)],
  AC_MSG_RESULT(no))
 
 dnl --------------------------
@@ -767,7 +721,7 @@
 AC_EGREP_HEADER(ifaliasreq,
 net/if.h,
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IFALIASREQ)],
+ AC_DEFINE(HAVE_IFALIASREQ,,ifaliasreq)],
  AC_MSG_RESULT(no))
 
 dnl ----------------------------
@@ -777,7 +731,7 @@
 AC_EGREP_HEADER(in6_aliasreq,
 netinet6/in6_var.h,
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_IN6_ALIASREQ)],
+ AC_DEFINE(HAVE_IN6_ALIASREQ,,in6_aliasreq)],
  AC_MSG_RESULT(no))
 
 dnl ---------------------------
@@ -787,7 +741,7 @@
 AC_EGREP_HEADER(rt_addrinfo,
 net/route.h,
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RT_ADDRINFO)],
+ AC_DEFINE(HAVE_RT_ADDRINFO,,rt_addrinfo)],
  AC_MSG_RESULT(no))
 
 dnl --------------------------
@@ -797,7 +751,7 @@
 AC_TRY_COMPILE([#include <netinet/in.h>
 ],[struct in_pktinfo ac_x;],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_INPKTINFO)],
+ AC_DEFINE(HAVE_INPKTINFO,,in_pktinfo)],
  AC_MSG_RESULT(no))
 
 dnl --------------------------------------
@@ -807,7 +761,7 @@
 AC_TRY_COMPILE([#include <sys/resource.h>
 ],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
 [AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_RUSAGE)],
+ AC_DEFINE(HAVE_RUSAGE,,rusage)],
  AC_MSG_RESULT(no))
 
 dnl -------------
@@ -832,12 +786,12 @@
 if test $ZEBRA_PID_DIR = "/dev/null"; then
   echo "PID DIRECTORY NOT FOUND!"
 fi])
-AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$ac_piddir/zebra.pid")
-AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$ac_piddir/ripd.pid")
-AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$ac_piddir/ripngd.pid")
-AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$ac_piddir/bgpd.pid")
-AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$ac_piddir/ospfd.pid")
-AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$ac_piddir/ospf6d.pid")
+AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$ac_piddir/zebra.pid",zebra PID)
+AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$ac_piddir/ripd.pid",ripd PID)
+AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$ac_piddir/ripngd.pid",ripngd PID)
+AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$ac_piddir/bgpd.pid",bgpd PID)
+AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$ac_piddir/ospfd.pid",ospfd PID)
+AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$ac_piddir/ospf6d.pid",ospf6d PID)
 
 
 dnl ---------------------------
@@ -859,7 +813,7 @@
 ac_cv_htonl_works=no)])
 AC_MSG_RESULT($ac_cv_htonl_works)
 
-AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile vtysh/Makefile doc/Makefile)
+AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile ripngd/Makefile bgpd/Makefile ospfd/Makefile ospf6d/Makefile vtysh/Makefile doc/Makefile ospfclient/Makefile)
 
 echo "
 zebra configuration
