2 ## Configure template file for Quagga.
3 ## autoconf will generate configure script.
5 ## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
6 ## Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
11 AC_INIT(Quagga, 0.99.10, [http://bugzilla.quagga.net])
12 AC_CONFIG_SRCDIR(lib/zebra.h)
14 dnl -----------------------------------
15 dnl Get hostname and other information.
16 dnl -----------------------------------
22 AM_CONFIG_HEADER(config.h)
24 dnl GNU awk is required for lib/memtype.h made by memtypes.awk.
25 dnl BSD awk complains: awk: gensub doesn't support backreferences (subst "\1")
26 AC_CHECK_PROG([GAWK],[gawk],[gawk],[/bin/false])
27 AC_ARG_VAR([GAWK],[GNU AWK])
29 dnl default is to match previous behavior
30 exampledir=${sysconfdir}
31 AC_ARG_ENABLE([exampledir],
32 AC_HELP_STRING([--enable-exampledir],
33 [specify alternate directory for examples]),
34 exampledir="$enableval",)
35 dnl XXX add --exampledir to autoconf standard directory list somehow
38 dnl default is to match previous behavior
41 AC_ARG_ENABLE([pkgsrcrcdir],
42 AC_HELP_STRING([--enable-pkgsrcrcdir],
43 [specify directory for rc.d scripts]),
44 pkgsrcrcdir="$enableval"; pkgsrcdir="pkgsrc",)
45 dnl XXX add --pkgsrcrcdir to autoconf standard directory list somehow
53 [ --with-cflags Set CFLAGS for use in compilation.])
54 if test "x$with_cflags" != "x" ; then
55 CFLAGS="$with_cflags" ; cflags_specified=yes ;
56 elif test -n "$CFLAGS" ; then
57 cflags_specified=yes ;
60 dnl --------------------
61 dnl Check CC and friends
62 dnl --------------------
68 dnl autoconf 2.59 appears not to support AC_PROG_SED
70 AC_CHECK_PROG([SED],[sed],[sed],[/bin/false])
72 dnl ------------------------------------------------------------------
73 dnl Intel compiler check. Although Intel tries really hard to make icc
74 dnl look like gcc, there are some differences. It's very verbose with
75 dnl -Wall and it doesn't support the individual -W options.
76 dnl ------------------------------------------------------------------
77 if test "x${GCC}" = "xyes" ; then
79 AC_MSG_CHECKING([whether we are using the Intel compiler])
80 AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
81 [AC_MSG_RESULT([no])],
86 AC_MSG_CHECKING([whether we are using SunPro compiler])
87 AC_EGREP_CPP([^__SUNPRO_C.*0x5(7|8|9)], ["__SUNPRO_C" __SUNPRO_C],
88 [AC_MSG_RESULT([no])],
94 dnl ---------------------------------------------
95 dnl If CLFAGS doesn\'t exist set default value
96 dnl AC_PROG_CC will have set minimal default
97 dnl already, eg "-O2 -g" for gcc, "-g" for others
98 dnl (Wall is gcc specific... have to make sure
99 dnl gcc is being used before setting it)
101 dnl Intel icc 8.0 also sets __GNUC__,
102 dnl but doesn't support all these fancy -W options.
103 dnl Intel compiler warnings we ignore:
104 dnl 279: controlling expression is constant.
105 dnl 869: parameter "xxx" was never referenced - to avoid massive warnings
106 dnl about "self", "vty", "argc" and "argv" never referenced in DEFUN
108 dnl 981: operands are evaluated in unspecified order.
110 dnl Sun Studio 10 / SunPro 5.7 is also supported,
111 dnl so lets set some sane CFLAGS for it.
112 dnl ---------------------------------------------
114 AC_MSG_CHECKING([whether to set a default CFLAGS])
115 if test "x${cflags_specified}" = "x" ; then
118 CFLAGS="-Os -g -Wall -wd 279,869,981"
119 AC_MSG_RESULT([Intel default])
122 CFLAGS="-Os -fno-omit-frame-pointer -g -std=gnu99 -Wall"
123 CFLAGS="${CFLAGS} -Wsign-compare -Wpointer-arith"
124 CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
125 CFLAGS="${CFLAGS} -Wmissing-prototypes -Wmissing-declarations"
126 CFLAGS="${CFLAGS} -Wchar-subscripts -Wcast-qual"
127 # TODO: conditionally addd -Wpacked if handled
128 AC_MSG_RESULT([gcc default])
131 CFLAGS="-xO4 -v -g -xspace -xcode=pic32 -xstrconst -xc99"
132 AC_MSG_RESULT([SunPro default])
135 AC_MSG_RESULT([unknown compiler])
139 AC_MSG_RESULT([CFLAGS supplied by user])
148 AC_CHECK_TOOL(AR, ar)
150 dnl ---------------------------
151 dnl We, perhaps unfortunately,
152 dnl depend on GNU Make specific
154 dnl Give the user a warning if
156 dnl ---------------------------
157 AC_CACHE_CHECK([if ${MAKE-make} is GNU make], [quagga_cv_gnu_make],
158 [quagga_cv_gnu_make=no
159 if ${MAKE-make} --version 2>/dev/null | \
160 grep '^GNU Make ' >/dev/null ; then
161 quagga_cv_gnu_make=yes;
166 dnl -----------------
167 dnl System extensions
168 dnl -----------------
177 dnl ----------------------
178 dnl Packages configuration
179 dnl ----------------------
181 [ --enable-vtysh include integrated vty shell for Quagga])
183 [ --disable-ipv6 turn off IPv6 related features and daemons])
185 [ --disable-zebra do not build zebra daemon])
187 [ --disable-bgpd do not build bgpd])
189 [ --disable-ripd do not build ripd])
190 AC_ARG_ENABLE(ripngd,
191 [ --disable-ripngd do not build ripngd])
193 [ --disable-ospfd do not build ospfd])
194 AC_ARG_ENABLE(ospf6d,
195 [ --disable-ospf6d do not build ospf6d])
196 AC_ARG_ENABLE(watchquagga,
197 [ --disable-watchquagga do not build watchquagga])
199 [ --enable-isisd build isisd])
200 AC_ARG_ENABLE(solaris,
201 [ --enable-solaris build solaris])
202 AC_ARG_ENABLE(bgp-announce,
203 [ --disable-bgp-announce, turn off BGP route announcement])
204 AC_ARG_ENABLE(netlink,
205 [ --enable-netlink force to use Linux netlink interface])
206 AC_ARG_ENABLE(broken-aliases,
207 [ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
209 [ --enable-snmp enable SNMP support])
211 [ --with-libpam use libpam for PAM support in vtysh])
212 AC_ARG_ENABLE(tcp-zebra,
213 [ --enable-tcp-zebra enable TCP/IP socket connection between zebra and protocol daemon])
214 AC_ARG_ENABLE(opaque-lsa,
215 [ --enable-opaque-lsa enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
216 AC_ARG_ENABLE(ospfapi,
217 [ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database,
218 (this is the default if --enable-opaque-lsa is not set)])
219 AC_ARG_ENABLE(ospfclient,
220 [ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
221 (this is the default if --disable-ospfapi is set)])
222 AC_ARG_ENABLE(ospf-te,
223 [ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
224 AC_ARG_ENABLE(multipath,
225 [ --enable-multipath=ARG enable multipath function, ARG must be digit])
226 AC_ARG_ENABLE(quagga_user,
227 [ --enable-user=ARG user to run Quagga suite as (default quagga)])
228 AC_ARG_ENABLE(quagga_group,
229 [ --enable-group=ARG group to run Quagga suite as (default quagga)])
230 AC_ARG_ENABLE(vty_group,
231 [ --enable-vty-group=ARG set vty sockets to have specified group as owner])
232 AC_ARG_ENABLE(configfile_mask,
233 [ --enable-configfile-mask=ARG set mask for config files])
234 AC_ARG_ENABLE(logfile_mask,
235 [ --enable-logfile-mask=ARG set mask for log files])
238 [ --disable-rtadv disable IPV6 router advertisement feature])
240 [ --enable-irdp enable IRDP server support in zebra])
241 AC_ARG_ENABLE(isis_topology,
242 [ --enable-isis-topology enable IS-IS topology generator])
243 AC_ARG_ENABLE(capabilities,
244 [ --disable-capabilities disable using POSIX capabilities])
245 AC_ARG_ENABLE(gcc_ultra_verbose,
246 [ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings])
247 AC_ARG_ENABLE(gcc-rdynamic,
248 [ --enable-gcc-rdynamic enable gcc linking with -rdynamic for better backtraces])
249 AC_ARG_ENABLE(time-check,
250 [ --disable-time-check disable slow thread warning messages])
252 if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then
253 CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
254 CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
255 CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
256 CFLAGS="${CFLAGS} -Wpacked -Wpadded"
259 if test x"${enable_gcc_rdynamic}" = x"yes" ; then
260 LDFLAGS="${LDFLAGS} -rdynamic"
263 if test x"${enable_time_check}" != x"no" ; then
264 if test x"${enable_time_check}" = x"yes" -o x"${enable_time_check}" = x ; then
265 AC_DEFINE(CONSUMED_TIME_CHECK,5000000,Consumed Time Check)
267 AC_DEFINE_UNQUOTED(CONSUMED_TIME_CHECK,$enable_time_check,Consumed Time Check)
271 if test "${enable_broken_aliases}" = "yes"; then
272 if test "${enable_netlink}" = "yes"
274 AC_MSG_FAILURE([Sorry you can not use netlink with broken aliases])
276 AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
280 if test "${enable_tcp_zebra}" = "yes"; then
281 AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
284 if test "${enable_opaque_lsa}" = "yes"; then
285 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
288 if test "${enable_ospf_te}" = "yes"; then
289 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
290 AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
293 AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
294 if test "${enable_rtadv}" != "no"; then
296 AC_DEFINE(HAVE_RTADV,,Enable IPv6 Routing Advertisement support)
301 if test "${enable_irdp}" = "yes"; then
302 AC_DEFINE(HAVE_IRDP,, IRDP )
305 if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then
306 AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code)
307 ISIS_TOPOLOGY_INCLUDES="-I./topology"
308 ISIS_TOPOLOGY_DIR="topology"
309 ISIS_TOPOLOGY_LIB="./topology/libtopology.a"
312 AC_SUBST(ISIS_TOPOLOGY_INCLUDES)
313 AC_SUBST(ISIS_TOPOLOGY_DIR)
314 AC_SUBST(ISIS_TOPOLOGY_LIB)
316 if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
318 elif test "${enable_user}" = "no"; then
322 if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
323 enable_group="quagga"
324 elif test "${enable_group}" = "no"; then
328 if test x"${enable_vty_group}" = x"yes" ; then
329 AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
330 elif test x"${enable_vty_group}" != x""; then
331 if test x"${enable_vty_group}" != x"no"; then
332 AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
335 AC_SUBST([enable_user])
336 AC_SUBST([enable_group])
337 AC_SUBST([enable_vty_group])
338 AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
339 AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
341 enable_configfile_mask=${enable_configfile_mask:-0600}
342 AC_DEFINE_UNQUOTED(CONFIGFILE_MASK, ${enable_configfile_mask}, Mask for config files)
344 enable_logfile_mask=${enable_logfile_mask:-0600}
345 AC_DEFINE_UNQUOTED(LOGFILE_MASK, ${enable_logfile_mask}, Mask for log files)
349 case "${enable_multipath}" in
351 MULTIPATH_NUM="${enable_multipath}"
356 AC_MSG_FAILURE([Please specify digit to enable multipath ARG])
360 AC_SUBST(MULTIPATH_NUM)
362 dnl ------------------------------------
363 dnl Check C keywords and standard types
364 dnl ------------------------------------
379 dnl -------------------------
380 dnl Check other header files.
381 dnl -------------------------
382 AC_CHECK_HEADERS([stropts.h sys/ksym.h sys/times.h sys/select.h \
383 sys/types.h linux/version.h netdb.h asm/types.h \
384 sys/param.h limits.h signal.h libutil.h \
385 sys/socket.h netinet/in.h])
387 dnl Utility macro to avoid retyping includes all the time
388 m4_define([QUAGGA_INCLUDES],
391 #define __EXTENSIONS__
403 # include <sys/types.h>
405 /* sys/conf.h depends on param.h on FBSD at least */
407 # include <sys/param.h>
409 /* Required for MAXSIG */
413 #if HAVE_SYS_SOCKET_H
414 # include <sys/socket.h>
416 #if HAVE_NETINET_IN_H
417 # include <netinet/in.h>
421 AC_CHECK_HEADERS([sys/un.h net/if.h netinet/in_systm.h netinet/in_var.h \
422 net/if_dl.h net/if_var.h net/netopt.h net/route.h \
423 inet/nd.h arpa/inet.h netinet/ip_icmp.h \
424 fcntl.h stddef.h sys/ioctl.h syslog.h wchar.h wctype.h \
425 sys/sysctl.h sys/sockio.h kvm.h sys/conf.h],
426 [], [], QUAGGA_INCLUDES)
428 AC_CHECK_HEADERS([ucontext.h], [], [],
431 #endif /* __USE_GNU */
435 m4_define([QUAGGA_INCLUDES],
443 #if HAVE_NETINET_IN_SYSTM_H
444 # include <netinet/in_systm.h>
446 #if HAVE_NETINET_IN_VAR_H
447 # include <netinet/in_var.h>
450 # include <net/if_dl.h>
452 #if HAVE_NET_IF_VAR_H
453 # include <net/if_var.h>
455 #if HAVE_NET_NETOPT_H
456 # include <net/netopt.h>
459 # include <net/route.h>
462 # include <inet/nd.h>
465 # include <arpa/inet.h>
467 /* Required for IDRP */
468 #if HAVE_NETINET_IP_ICMP_H
469 # include <netinet/ip_icmp.h>
473 dnl V6 headers are checked below, after we check for v6
475 dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
477 [*-sunos5.[6-7]*] | [*-solaris2.[6-7]*])
479 AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.7)
480 AC_DEFINE(SUNOS_5, 1, SunOS 5)
481 AC_CHECK_LIB(xnet, main)
485 | [*-sunos5.1[0-9]] \
486 | [*-sunos5.1[0-9].[0-9]] \
487 | [*-solaris2.[8-9]] \
488 | [*-solaris2.1[0-9]] \
489 | [*-solaris2.1[0-9].[0-9]])
491 AC_DEFINE(SUNOS_59, 1, [SunOS 5.8 up])
492 AC_DEFINE(SUNOS_5, 1, [SunOS 5])
493 AC_CHECK_LIB(socket, main)
494 AC_CHECK_LIB(nsl, main)
495 AC_CHECK_LIB(umem, main)
496 AC_CHECK_FUNCS([printstack],
497 [AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
498 AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
502 *-sunos5* | *-solaris2*)
503 AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
504 AC_CHECK_LIB(socket, main)
505 AC_CHECK_LIB(nsl, main)
510 AC_DEFINE(GNU_LINUX,,GNU Linux)
513 AC_CHECK_LIB(nsl, gethostbyname)
514 AC_CHECK_LIB(socket, socket)
518 AC_DEFINE(OPEN_BSD,,OpenBSD)
522 OTHER_METHOD="mtu_kvm.o"
523 AC_CHECK_LIB(kvm, main)
527 AC_DEFINE(IRIX_65,,IRIX 6.5)
531 dnl ---------------------
532 dnl Integrated VTY option
533 dnl ---------------------
534 case "${enable_vtysh}" in
535 "yes") VTYSH="vtysh";
536 AC_DEFINE(VTYSH,,VTY shell)
537 AC_PATH_PROG(PERL, perl)
538 dnl Vtysh uses libreadline, which looks for termcap functions at
539 dnl configure time. We follow readlines search order.
540 dnl The required procedures are in libtermcap on NetBSD, in
541 dnl [TODO] on Linux, and in [TODO] on Solaris.
542 AC_CHECK_LIB(termcap, tputs, LIBREADLINE="$LIBREADLINE -ltermcap",
543 [AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
544 [AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
545 [AC_CHECK_LIB(ncurses, tputs,
546 LIBREADLINE="$LIBREADLINE -lncurses")]
550 AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
552 if test $ac_cv_lib_readline_main = no; then
553 AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
555 AC_CHECK_HEADER(readline/history.h)
556 if test $ac_cv_header_readline_history_h = no;then
557 AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
559 AC_CHECK_LIB(readline, rl_completion_matches,
560 LIBREADLINE="$LIBREADLINE",, "$LIBREADLINE")
561 if test $ac_cv_lib_readline_rl_completion_matches = no; then
562 AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
568 AC_SUBST(LIBREADLINE)
573 if test "$with_libpam" = "yes"; then
574 AC_CHECK_HEADER([security/pam_misc.h],
575 [AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
576 AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
577 pam_conv_func="misc_conv"
580 AC_CHECK_HEADER([security/openpam.h],
581 [AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
582 AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
583 pam_conv_func="openpam_ttyconv"
586 if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
587 AC_MSG_WARN([*** pam support will not be built ***])
592 if test "$with_libpam" = "yes"; then
593 dnl took this test from proftpds configure.in and suited to our needs
594 dnl -------------------------------------------------------------------------
596 dnl This next check looks funky due to a linker problem with some versions
597 dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
598 dnl omitted requiring libdl linking information. PAM-0.72 or better ships
599 dnl with RedHat 6.2 and Debian 2.2 or better.
600 AC_CHECK_LIB(pam, pam_start,
601 [AC_CHECK_LIB(pam, $pam_conv_func,
602 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
604 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
605 LIBPAM="-lpam -lpam_misc"]
609 [AC_CHECK_LIB(pam, pam_end,
610 [AC_CHECK_LIB(pam, $pam_conv_func,
611 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
612 LIBPAM="-lpam -ldl"],
613 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
614 LIBPAM="-lpam -ldl -lpam_misc"]
616 ],AC_MSG_WARN([*** pam support will not be built ***]),
623 dnl -------------------------------
624 dnl Endian-ness check
625 dnl -------------------------------
628 dnl -------------------------------
629 dnl check the size in byte of the C
630 dnl -------------------------------
631 dnl AC_CHECK_SIZEOF(char)
632 dnl AC_CHECK_SIZEOF(int)
633 dnl AC_CHECK_SIZEOF(short)
634 dnl AC_CHECK_SIZEOF(long)
636 dnl ----------------------------
637 dnl check existance of functions
638 dnl ----------------------------
648 AC_FUNC_SELECT_ARGTYPES
650 dnl Avoid AC_FUNC_STRNLEN because it pulls in AC_SYSTEM_EXTENSIONS which
651 dnl can lead to strange side effects. So we just check for strnlen
652 dnl directly, see below.
653 dnl AC_FUNC_STRNLENdnl
656 dnl -------------------------------
657 dnl bgpd needs pow() and hence libm
658 dnl -------------------------------
660 AC_CHECK_HEADER([math.h],
661 [AC_CHECK_LIB([m], [pow],
664 AC_DEFINE(HAVE_LIBM,, Have libm)
665 AC_CHECK_FUNCS(pow,[],[LIBM=""])
668 if test x"$LIBM" = x ; then
669 AC_MSG_WARN([Unable to find working pow function - bgpd may not link])
677 AC_CHECK_FUNCS([dup2 ftruncate getcwd gethostbyname getpagesize gettimeofday \
678 inet_ntoa inet_aton strnlen \
679 memchr memmove memset select socket \
680 strcasecmp strchr strcspn strdup strerror \
681 strncasecmp strndup strrchr strspn strstr \
682 strtol strtoul strlcat strlcpy \
683 daemon snprintf vsnprintf \
684 if_nametoindex if_indextoname getifaddrs \
687 AC_CHECK_FUNCS(setproctitle, ,
688 [AC_CHECK_LIB(util, setproctitle,
690 AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
696 dnl ------------------------------------
697 dnl Determine routing get and set method
698 dnl ------------------------------------
699 AC_MSG_CHECKING(zebra between kernel interface method)
700 if test x"$opsys" = x"gnu-linux"; then
701 if test "${enable_netlink}" = "yes";then
702 AC_MSG_RESULT(netlink)
703 RT_METHOD=rt_netlink.o
704 AC_DEFINE(HAVE_NETLINK,,netlink)
706 elif test "${enable_netlink}" = "no"; then
711 AC_MSG_RESULT(netlink)
712 RT_METHOD=rt_netlink.o
713 AC_DEFINE(HAVE_NETLINK,,netlink)
716 elif test x"$opsys" = x"sol2-6";then
717 AC_MSG_RESULT(Route socket)
718 KERNEL_METHOD="kernel_socket.o"
719 RT_METHOD="rt_socket.o"
720 elif test x"$opsys" = x"sol8";then
721 AC_MSG_RESULT(Route socket)
722 KERNEL_METHOD="kernel_socket.o"
723 RT_METHOD="rt_socket.o"
724 elif test "$opsys" = "irix" ; then
725 AC_MSG_RESULT(Route socket)
726 KERNEL_METHOD="kernel_socket.o"
727 RT_METHOD="rt_socket.o"
729 AC_TRY_RUN([#include <errno.h>
730 #include <sys/types.h>
731 #include <sys/socket.h>
737 ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
738 if (ac_sock < 0 && errno == EINVAL)
742 [KERNEL_METHOD=kernel_socket.o
743 RT_METHOD=rt_socket.o
744 AC_MSG_RESULT(socket)],
745 [RT_METHOD=rt_ioctl.o
746 AC_MSG_RESULT(ioctl)],
747 [KERNEL_METHOD=kernel_socket.o
748 RT_METHOD=rt_socket.o
749 AC_MSG_RESULT(socket)])
752 AC_SUBST(KERNEL_METHOD)
753 AC_SUBST(OTHER_METHOD)
755 dnl --------------------------
756 dnl Determine IS-IS I/O method
757 dnl --------------------------
758 AC_CHECK_HEADER(net/bpf.h)
759 AC_CHECK_HEADER(sys/dlpi.h)
760 AC_MSG_CHECKING(zebra IS-IS I/O method)
761 if test x"$opsys" = x"gnu-linux"; then
762 AC_MSG_RESULT(pfpacket)
763 ISIS_METHOD=isis_pfpacket.o
764 elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
766 ISIS_METHOD="isis_dlpi.o"
768 if test $ac_cv_header_net_bpf_h = no; then
769 if test $ac_cv_header_sys_dlpi_h = no; then
771 AC_MSG_WARN([*** IS-IS support will not be built ***])
776 ISIS_METHOD="isis_dlpi.o"
779 ISIS_METHOD="isis_bpf.o"
782 AC_SUBST(ISIS_METHOD)
784 dnl ------------------------------------
785 dnl check for broken CMSG_FIRSTHDR macro
786 dnl ------------------------------------
787 AC_MSG_CHECKING(for broken CMSG_FIRSTHDR)
788 AC_RUN_IFELSE([AC_LANG_SOURCE([[
791 #define __EXTENSIONS__
796 #ifdef HAVE_SYS_TYPES_H
797 #include <sys/types.h>
799 #ifdef HAVE_SYS_SOCKET_H
800 #include <sys/socket.h>
808 msg.msg_control = buf;
809 msg.msg_controllen = 0;
811 if (CMSG_FIRSTHDR(&msg) != NULL)
814 }]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
815 [AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
817 dnl ------------------------------
818 dnl check kernel route read method
819 dnl ------------------------------
820 AC_CACHE_CHECK(route read method check, zebra_rtread,
821 [if test "$netlink" = yes; then
822 RTREAD_METHOD="rtread_netlink.o"
823 zebra_rtread="netlink"
825 for zebra_rtread in /proc/net/route /dev/ip /dev/null;
827 test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
829 case $zebra_rtread in
830 "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
831 zebra_rtread="proc";;
834 *-freebsd*) RTREAD_METHOD=rtread_sysctl.o
835 zebra_rtread="sysctl";;
836 *) RTREAD_METHOD="rtread_getmsg.o"
837 zebra_rtread="getmsg";;
839 *) RTREAD_METHOD="rtread_sysctl.o"
840 zebra_rtread="sysctl";;
843 AC_SUBST(RTREAD_METHOD)
845 dnl -----------------------------
846 dnl check interface lookup method
847 dnl -----------------------------
849 AC_MSG_CHECKING(interface looking up method)
850 if test "$netlink" = yes; then
851 AC_MSG_RESULT(netlink)
852 IF_METHOD=if_netlink.o
853 elif test "$opsys" = "sol2-6";then
854 AC_MSG_RESULT(Solaris GIF)
856 elif test "$opsys" = "sol8";then
857 AC_MSG_RESULT(Solaris GLIF)
858 IF_METHOD=if_ioctl_solaris.o
859 IOCTL_METHOD=ioctl_solaris.o
860 elif test "$opsys" = "irix" ; then
863 elif test "$opsys" = "openbsd";then
864 AC_MSG_RESULT(openbsd)
866 elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
867 AC_MSG_RESULT(sysctl)
868 IF_METHOD=if_sysctl.o
869 AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
875 AC_SUBST(IOCTL_METHOD)
877 dnl ---------------------------------------------------------------
878 dnl figure out how to specify an interface in multicast sockets API
879 dnl ---------------------------------------------------------------
880 AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [], [], QUAGGA_INCLUDES)
882 AC_MSG_CHECKING([for BSD struct ip_mreq hack])
883 AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H
884 #include <sys/param.h>
885 #endif],[#if (defined(__FreeBSD__) && (__FreeBSD_version >= 500022 || (__FreeBSD_version < 500000 && __FreeBSD_version >= 440000))) || (defined(__NetBSD__) && defined(__NetBSD_Version__) && __NetBSD_Version__ >= 106010000)
888 #error No support for BSD struct ip_mreq hack detected
889 #endif],[AC_MSG_RESULT(yes)
890 AC_DEFINE(HAVE_BSD_STRUCT_IP_MREQ_HACK,,[Can pass ifindex in struct ip_mreq])],
893 dnl ---------------------------------------------------------------
894 dnl figure out how to check link-state
895 dnl ---------------------------------------------------------------
896 AC_CHECK_HEADER([net/if.h],
897 [AC_CHECK_HEADER( [net/if_media.h],
898 [m4_define([LINK_DETECT_INCLUDES],
900 [#include <net/if_media.h>
902 AC_CHECK_MEMBERS( [struct ifmediareq.ifm_status],
903 AC_DEFINE(HAVE_BSD_LINK_DETECT,,[BSD link-detect]),
904 [], LINK_DETECT_INCLUDES)],
907 [], QUAGGA_INCLUDES )
909 dnl ------------------------
910 dnl TCP_MD5SIG socket option
911 dnl ------------------------
913 AC_CHECK_HEADER([netinet/tcp.h],
914 [m4_define([MD5_INCLUDES],
916 [#include <netinet/tcp.h>
918 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)],
921 if test $ac_cv_have_decl_TCP_MD5SIG = no; then
922 AC_CHECK_HEADER([linux/tcp.h],
923 [m4_define([MD5_INCLUDES],
925 [#include <linux/tcp.h>
927 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)])
930 dnl -----------------------
931 dnl check proc file system.
932 dnl -----------------------
933 if test -r /proc/net/dev; then
934 AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
938 if test -r /proc/net/if_inet6; then
939 AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
944 dnl -----------------------------
945 dnl check ipforward detect method
946 dnl -----------------------------
947 AC_CACHE_CHECK(ipforward method check, zebra_ipforward_path,
948 [for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
950 test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
952 case $zebra_ipforward_path in
953 "/proc/net/snmp") IPFORWARD=ipforward_proc.o
954 zebra_ipforward_path="proc";;
957 *-nec-sysv4*) IPFORWARD=ipforward_ews.o
958 zebra_ipforward_path="ews";;
959 *-freebsd*) IPFORWARD=ipforward_sysctl.o
960 zebra_ipforward_path="sysctl";;
961 *) IPFORWARD=ipforward_solaris.o
962 zebra_ipforward_path="solaris";;
964 *) IPFORWARD=ipforward_sysctl.o
965 zebra_ipforward_path="sysctl";;
969 AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
974 AC_MSG_CHECKING(whether does this OS have IPv6 stack)
975 if test "${enable_ipv6}" = "no"; then
976 AC_MSG_RESULT(disabled)
981 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
983 AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
984 AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
988 AC_MSG_RESULT(INRIA IPv6)
992 elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
994 AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
995 AC_DEFINE(KAME,1,KAME IPv6)
998 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
999 LIB_IPV6="-L/usr/local/v6/lib -linet6"
1002 dnl -------------------------
1004 dnl default host check
1005 dnl It is not used by Kheops
1006 dnl -------------------------
1007 elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
1009 AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
1010 AC_DEFINE(MUSICA,1,Musica IPv6 stack)
1011 AC_DEFINE(KAME,1,KAME IPv6 stack)
1014 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
1015 LIB_IPV6="-L/usr/local/v6/lib -linet6"
1017 AC_MSG_RESULT(MUSICA)
1021 elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
1023 AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
1024 AC_DEFINE(NRL,1,NRL)
1027 if test x"$opsys" = x"bsdi";then
1028 AC_DEFINE(BSDI_NRL,,BSDI)
1029 AC_MSG_RESULT(BSDI_NRL)
1033 dnl ------------------------------------
1034 dnl Solaris 9, 10 and potentially higher
1035 dnl ------------------------------------
1036 elif test x"$opsys" = x"sol8"; then
1038 AC_DEFINE(HAVE_IPV6, 1, IPv6)
1039 AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
1042 AC_MSG_RESULT(Solaris IPv6)
1046 elif test "${enable_ipv6}" = "yes"; then
1048 #include <linux/version.h>
1049 /* 2.1.128 or later */
1050 #if LINUX_VERSION_CODE >= 0x020180
1054 zebra_cv_linux_ipv6=yes
1055 AC_MSG_RESULT(Linux IPv6)])
1057 if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
1060 zebra_cv_linux_ipv6=yes
1061 AC_MSG_RESULT(Linux IPv6)
1065 if test "$zebra_cv_linux_ipv6" = "yes";then
1066 AC_MSG_CHECKING(whether libc has IPv6 support)
1067 AC_TRY_LINK([#include <netinet/in.h>
1068 ],[ int a; a = (int) in6addr_any.s6_addr[0]; if (a != 12345) return a; ],
1071 zebra_cv_linux_ipv6=yes],
1074 zebra_cv_linux_ipv6=no])
1077 if test "$zebra_cv_linux_ipv6" = "yes";then
1078 AC_MSG_CHECKING(for GNU libc >= 2.1)
1079 AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
1081 #include <features.h>
1082 #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
1086 AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
1087 AC_MSG_RESULT(yes)],
1092 if test "$glibc" != "yes"; then
1093 INCLUDES="-I/usr/inet6/include"
1094 if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
1095 LIB_IPV6="-L/usr/inet6/lib -linet6"
1100 dnl -----------------------
1101 dnl Set IPv6 related values
1102 dnl -----------------------
1103 LIBS="$LIB_IPV6 $LIBS"
1106 if test x"$RIPNGD" = x""; then
1107 AC_MSG_RESULT(IPv4 only)
1111 dnl ------------------
1112 dnl IPv6 header checks
1113 dnl ------------------
1114 if test "x${zebra_cv_ipv6}" = "xyes"; then
1115 AC_CHECK_HEADERS([netinet6/in6.h netinet/in6_var.h netinet/icmp6.h \
1116 netinet6/in6_var.h netinet6/nd6.h], [], [],
1120 m4_define([QUAGGA_INCLUDES],dnl
1122 [#if HAVE_NETINET6_IN6_H
1123 #include <netinet6/in6.h>
1125 #if HAVE_NETINET_IN6_VAR_H
1126 #include <netinet/in6_var.h>
1128 #if HAVE_NETINET_ICMP6_H
1129 # include <netinet/icmp6.h>
1131 #if HAVE_NETINET6_IN6_VAR_H
1132 # include <netinet6/in6_var.h>
1134 #if HAVE_NETINET6_ND6_H
1135 # include <netinet6/nd6.h>
1139 dnl --------------------
1140 dnl Daemon disable check
1141 dnl --------------------
1142 if test "${enable_zebra}" = "no";then
1148 if test "${enable_bgpd}" = "no";then
1154 if test "${enable_ripd}" = "no";then
1160 if test "${enable_ospfd}" = "no";then
1166 if test "${enable_watchquagga}" = "no";then
1169 WATCHQUAGGA="watchquagga"
1173 if test "${enable_opaque_lsa}" = "yes"; then
1174 if test "${enable_ospfapi}" != "no";then
1175 AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
1177 if test "${enable_ospfclient}" != "no";then
1178 OSPFCLIENT="ospfclient"
1184 case "${enable_ripngd}" in
1185 "yes") RIPNGD="ripngd";;
1190 case "${enable_ospf6d}" in
1191 "yes") OSPF6D="ospf6d";;
1196 case "${enable_isisd}" in
1197 "yes") ISISD="isisd";;
1202 # XXX Perhaps auto-enable on Solaris, but that's messy for cross builds.
1203 case "${enable_solaris}" in
1204 "yes") SOLARIS="solaris";;
1209 if test "${enable_bgp_announce}" = "no";then
1210 AC_DEFINE(DISABLE_BGP_ANNOUNCE,1,Disable BGP installation to zebra)
1212 AC_DEFINE(DISABLE_BGP_ANNOUNCE,0,Disable BGP installation to zebra)
1221 AC_SUBST(WATCHQUAGGA)
1227 AC_SUBST(OSPFCLIENT)
1229 AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
1230 AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
1231 AC_CHECK_LIB(crypt, crypt)
1232 AC_CHECK_LIB(resolv, res_init)
1234 dnl ---------------------------------------------------
1235 dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
1236 dnl ---------------------------------------------------
1237 AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
1238 AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
1239 AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
1241 dnl ---------------------------
1242 dnl check system has GNU regexp
1243 dnl ---------------------------
1244 dnl AC_MSG_CHECKING(whether system has GNU regex)
1245 AC_CHECK_LIB(c, regexec,
1246 [AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
1248 [LIB_REGEX="regex.o"])
1251 dnl ------------------
1252 dnl check Net-SNMP library
1253 dnl ------------------
1254 if test "${enable_snmp}" = "yes"; then
1255 LIBS="${LIBS} -lcrypto"
1256 AC_CHECK_LIB(netsnmp, asn_parse_int,
1257 [AC_DEFINE(HAVE_NETSNMP,,Net SNMP)
1258 AC_DEFINE(HAVE_SNMP,,SNMP)
1259 LIBS="${LIBS} -lnetsnmp"],
1260 [AC_MSG_ERROR([--enable-snmp given, but cannot find support for SNMP])])
1262 for ac_snmp in /usr/include \
1263 /usr/local/include \
1265 test -f "${ac_snmp}/net-snmp/library/asn1.h" && break
1270 AC_MSG_ERROR([--enable-snmp given, but can not find header])
1273 SNMP_INCLUDES="-I${ac_snmp}/net-snmp"
1274 SNMP_INCLUDES="${SNMP_INCLUDES} -I${ac_snmp}/net-snmp/library"
1278 AC_SUBST(SNMP_INCLUDES)
1281 dnl ---------------------------
1282 dnl sockaddr and netinet checks
1283 dnl ---------------------------
1284 AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
1285 struct sockaddr_in6, struct sockaddr_un, struct sockaddr_dl,
1287 struct ifaliasreq, struct if6_aliasreq, struct in6_aliasreq,
1288 struct nd_opt_adv_interval, struct rt_addrinfo,
1289 struct nd_opt_homeagent_info, struct nd_opt_adv_interval],
1290 [], [], QUAGGA_INCLUDES)
1292 AC_CHECK_MEMBERS([struct sockaddr.sa_len,
1293 struct sockaddr_in.sin_len, struct sockaddr_un.sun_len,
1294 struct sockaddr_in6.sin6_scope_id,
1295 struct if6_aliasreq.ifra_lifetime,
1296 struct nd_opt_adv_interval.nd_opt_ai_type],
1297 [], [], QUAGGA_INCLUDES)
1299 dnl ---------------------------
1300 dnl IRDP/pktinfo/icmphdr checks
1301 dnl ---------------------------
1302 AC_CHECK_TYPES([struct in_pktinfo],
1303 [AC_CHECK_TYPES([struct icmphdr],
1304 [if test "${enable_irdp}" != "no"; then
1305 AC_DEFINE(HAVE_IRDP,, IRDP)
1307 [if test "${enable_irdp}" = "yes"; then
1308 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1309 fi], [QUAGGA_INCLUDES])],
1310 [if test "${enable_irdp}" = "yes"; then
1311 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1312 fi], [QUAGGA_INCLUDES])
1314 dnl --------------------------------------
1315 dnl checking for getrusage struct and call
1316 dnl --------------------------------------
1317 AC_MSG_CHECKING(whether getrusage is available)
1318 AC_TRY_COMPILE([#include <sys/resource.h>
1319 ],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
1321 AC_DEFINE(HAVE_RUSAGE,,rusage)],
1324 dnl -------------------
1325 dnl capabilities checks
1326 dnl -------------------
1327 if test "${enable_capabilities}" != "no"; then
1328 AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
1329 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
1331 AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
1332 quagga_ac_keepcaps="yes"],
1335 if test x"${quagga_ac_keepcaps}" = x"yes"; then
1336 AC_CHECK_HEADERS(sys/capability.h)
1338 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
1339 AC_CHECK_LIB(cap, cap_init,
1340 [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
1342 quagga_ac_lcaps="yes"]
1345 AC_CHECK_HEADERS(priv.h,
1346 [AC_MSG_CHECKING(Solaris style privileges are available)
1347 AC_TRY_COMPILE([#include <priv.h>],[getpflags(PRIV_AWARE);],
1349 AC_DEFINE(HAVE_SOLARIS_CAPABILITIES,1,getpflags)
1350 quagga_ac_scaps="yes"],
1356 if test x"${quagga_ac_scaps}" = x"yes" \
1357 -o x"${quagga_ac_lcaps}" = x"yes"; then
1358 AC_DEFINE(HAVE_CAPABILITIES,1,capabilities)
1363 dnl ---------------------------
1364 dnl check for glibc 'backtrace'
1365 dnl ---------------------------
1366 if test "${glibc}" = "yes"; then
1367 AC_CHECK_HEADER([execinfo.h],
1368 [AC_CHECK_FUNC([backtrace],
1369 [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
1370 AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
1375 dnl -----------------------------------------
1376 dnl check for malloc mallinfo struct and call
1377 dnl this must try and link using LIBS, in
1378 dnl order to check no alternative allocator
1379 dnl has been specified, which might not provide
1380 dnl mallinfo, e.g. such as Umem on Solaris.
1381 dnl -----------------------------------------
1382 AC_CHECK_HEADER([malloc.h],
1383 [AC_MSG_CHECKING(whether mallinfo is available)
1384 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]],
1385 [[struct mallinfo ac_x; ac_x = mallinfo ();]])],
1387 AC_DEFINE(HAVE_MALLINFO,,mallinfo)],
1390 ], [], QUAGGA_INCLUDES)
1395 CONFDATE=`date '+%Y%m%d'`
1398 dnl ------------------------------
1399 dnl set paths for state directory
1400 dnl ------------------------------
1401 if test "${prefix}" = "NONE"; then
1402 quagga_statedir_prefix="";
1404 quagga_statedir_prefix=${prefix}
1406 if test "${localstatedir}" = '${prefix}/var'; then
1407 AC_CACHE_CHECK(state directory,ac_statedir,
1408 [for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
1409 ${quagga_statedir_prefix}/var/adm dnl
1410 ${quagga_statedir_prefix}/etc dnl
1416 test -d $QUAGGA_STATE_DIR && break
1418 quagga_statedir=$QUAGGA_STATE_DIR])
1420 quagga_statedir=${localstatedir}
1421 AC_MSG_CHECKING(directory to use for state file)
1422 AC_MSG_RESULT(${quagga_statedir})
1423 AC_SUBST(quagga_statedir)
1425 if test $quagga_statedir = "/dev/null"; then
1426 AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
1429 AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
1430 AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
1431 AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
1432 AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
1433 AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
1434 AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
1435 AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$quagga_statedir/isisd.pid",isisd PID)
1436 AC_DEFINE_UNQUOTED(PATH_WATCHQUAGGA_PID, "$quagga_statedir/watchquagga.pid",watchquagga PID)
1437 AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
1438 AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
1439 AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
1440 AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
1441 AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
1442 AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
1443 AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
1444 AC_DEFINE_UNQUOTED(ISIS_VTYSH_PATH, "$quagga_statedir/isisd.vty",isisd vty socket)
1445 AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$quagga_statedir",daemon vty directory)
1447 dnl -------------------------------
1448 dnl Quagga sources should always be
1449 dnl current wrt interfaces. Dont
1450 dnl allow deprecated interfaces to
1452 dnl -------------------------------
1453 AC_DEFINE(QUAGGA_NO_DEPRECATED_INTERFACES, 1, Hide deprecated interfaces)
1455 dnl ---------------------------
1456 dnl Check htonl works correctly
1457 dnl ---------------------------
1458 AC_MSG_CHECKING(for working htonl)
1459 AC_CACHE_VAL(ac_cv_htonl_works,
1460 [AC_LINK_IFELSE([AC_LANG_PROGRAM([QUAGGA_INCLUDES],[htonl (0);])],
1461 [ac_cv_htonl_works=yes], [ac_cv_htonl_works=no])
1464 AC_MSG_RESULT($ac_cv_htonl_works)
1466 AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
1467 ripngd/Makefile bgpd/Makefile ospfd/Makefile watchquagga/Makefile
1468 ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile
1469 ospfclient/Makefile tests/Makefile m4/Makefile redhat/Makefile
1474 isisd/topology/Makefile
1475 pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh
1476 pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh])
1477 AC_CONFIG_FILES([solaris/Makefile])
1479 AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
1480 ## Hack, but working solution to avoid rebuilding of quagga.info.
1481 ## It's already in CVS until texinfo 4.7 is more common.
1485 Quagga configuration
1486 --------------------
1487 quagga version : ${PACKAGE_VERSION}
1488 host operationg system : ${host_os}
1489 source code location : ${srcdir}
1491 compiler flags : ${CFLAGS}
1493 includes : ${INCLUDES} ${SNMP_INCLUDES}
1494 linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM}
1495 state file directory : ${quagga_statedir}
1496 config file directory : `eval echo \`echo ${sysconfdir}\``
1497 example directory : `eval echo \`echo ${exampledir}\``
1498 user to run as : ${enable_user}
1499 group to run as : ${enable_group}
1500 group for vty sockets : ${enable_vty_group}
1501 config file mask : ${enable_configfile_mask}
1502 log file mask : ${enable_logfile_mask}
1504 The above user and group must have read/write access to the state file
1505 directory and to the config files in the config file directory."
1507 if test x"$quagga_cv_gnu_make" = x"no"; then echo "
1508 Warning: The ${MAKE-make} programme detected, either in your path or
1509 via the MAKE variable, is not GNU Make. GNU make may be installed as
1510 gmake on some systems. and is required to complete a build of Quagga