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.7, [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])
147 AC_CHECK_TOOL(AR, ar)
148 AC_CHECK_TOOL(RANLIB, ranlib, :)
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;
176 dnl ----------------------
177 dnl Packages configuration
178 dnl ----------------------
180 [ --enable-vtysh include integrated vty shell for Quagga])
182 [ --disable-ipv6 turn off IPv6 related features and daemons])
184 [ --disable-zebra do not build zebra daemon])
186 [ --disable-bgpd do not build bgpd])
188 [ --disable-ripd do not build ripd])
189 AC_ARG_ENABLE(ripngd,
190 [ --disable-ripngd do not build ripngd])
192 [ --disable-ospfd do not build ospfd])
193 AC_ARG_ENABLE(ospf6d,
194 [ --disable-ospf6d do not build ospf6d])
195 AC_ARG_ENABLE(watchquagga,
196 [ --disable-watchquagga do not build watchquagga])
198 [ --enable-isisd build isisd])
199 AC_ARG_ENABLE(bgp-announce,
200 [ --disable-bgp-announce, turn off BGP route announcement])
201 AC_ARG_ENABLE(netlink,
202 [ --enable-netlink force to use Linux netlink interface])
203 AC_ARG_ENABLE(broken-aliases,
204 [ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
206 [ --enable-snmp enable SNMP support])
208 [ --with-libpam use libpam for PAM support in vtysh])
209 AC_ARG_ENABLE(tcp-zebra,
210 [ --enable-tcp-zebra enable TCP/IP socket connection between zebra and protocol daemon])
211 AC_ARG_ENABLE(opaque-lsa,
212 [ --enable-opaque-lsa enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
213 AC_ARG_ENABLE(ospfapi,
214 [ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database,
215 (this is the default if --enable-opaque-lsa is not set)])
216 AC_ARG_ENABLE(ospfclient,
217 [ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
218 (this is the default if --disable-ospfapi is set)])
219 AC_ARG_ENABLE(ospf-te,
220 [ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
221 AC_ARG_ENABLE(multipath,
222 [ --enable-multipath=ARG enable multipath function, ARG must be digit])
223 AC_ARG_ENABLE(quagga_user,
224 [ --enable-user=ARG user to run Quagga suite as (default quagga)])
225 AC_ARG_ENABLE(quagga_group,
226 [ --enable-group=ARG group to run Quagga suite as (default quagga)])
227 AC_ARG_ENABLE(vty_group,
228 [ --enable-vty-group=ARG set vty sockets to have specified group as owner])
229 AC_ARG_ENABLE(configfile_mask,
230 [ --enable-configfile-mask=ARG set mask for config files])
231 AC_ARG_ENABLE(logfile_mask,
232 [ --enable-logfile-mask=ARG set mask for log files])
235 [ --disable-rtadv disable IPV6 router advertisement feature])
237 [ --enable-irdp enable IRDP server support in zebra])
238 AC_ARG_ENABLE(isis_topology,
239 [ --enable-isis-topology enable IS-IS topology generator])
240 AC_ARG_ENABLE(capabilities,
241 [ --disable-capabilities disable using POSIX capabilities])
242 AC_ARG_ENABLE(gcc_ultra_verbose,
243 [ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings])
244 AC_ARG_ENABLE(gcc-rdynamic,
245 [ --enable-gcc-rdynamic enable gcc linking with -rdynamic for better backtraces])
246 AC_ARG_ENABLE(time-check,
247 [ --disable-time-check disable slow thread warning messages])
249 if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then
250 CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
251 CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
252 CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
253 CFLAGS="${CFLAGS} -Wpacked -Wpadded"
256 if test x"${enable_gcc_rdynamic}" = x"yes" ; then
257 LDFLAGS="${LDFLAGS} -rdynamic"
260 if test x"${enable_time_check}" != x"no" ; then
261 if test x"${enable_time_check}" = x"yes" -o x"${enable_time_check}" = x ; then
262 AC_DEFINE(CONSUMED_TIME_CHECK,5000000,Consumed Time Check)
264 AC_DEFINE_UNQUOTED(CONSUMED_TIME_CHECK,$enable_time_check,Consumed Time Check)
268 if test "${enable_broken_aliases}" = "yes"; then
269 if test "${enable_netlink}" = "yes"
271 echo "Sorry, you can't use netlink with broken aliases"
274 AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
278 if test "${enable_tcp_zebra}" = "yes"; then
279 AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
282 if test "${enable_opaque_lsa}" = "yes"; then
283 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
286 if test "${enable_ospf_te}" = "yes"; then
287 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
288 AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
291 AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
292 if test "${enable_rtadv}" != "no"; then
294 AC_DEFINE(HAVE_RTADV,,Enable IPv6 Routing Advertisement support)
299 if test "${enable_irdp}" = "yes"; then
300 AC_DEFINE(HAVE_IRDP,, IRDP )
303 if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then
304 AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code)
305 ISIS_TOPOLOGY_INCLUDES="-I./topology"
306 ISIS_TOPOLOGY_DIR="topology"
307 ISIS_TOPOLOGY_LIB="./topology/libtopology.a"
310 AC_SUBST(ISIS_TOPOLOGY_INCLUDES)
311 AC_SUBST(ISIS_TOPOLOGY_DIR)
312 AC_SUBST(ISIS_TOPOLOGY_LIB)
314 if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
316 elif test "${enable_user}" = "no"; then
320 if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
321 enable_group="quagga"
322 elif test "${enable_group}" = "no"; then
326 if test x"${enable_vty_group}" = x"yes" ; then
327 AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
328 elif test x"${enable_vty_group}" != x""; then
329 if test x"${enable_vty_group}" != x"no"; then
330 AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
333 AC_SUBST([enable_user])
334 AC_SUBST([enable_group])
335 AC_SUBST([enable_vty_group])
336 AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
337 AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
339 enable_configfile_mask=${enable_configfile_mask:-0600}
340 AC_DEFINE_UNQUOTED(CONFIGFILE_MASK, ${enable_configfile_mask}, Mask for config files)
342 enable_logfile_mask=${enable_logfile_mask:-0600}
343 AC_DEFINE_UNQUOTED(LOGFILE_MASK, ${enable_logfile_mask}, Mask for log files)
349 case "${enable_multipath}" in
351 MULTIPATH_NUM="${enable_multipath}"
356 echo "Please specify digit to --enable-multipath ARG."
363 AC_SUBST(MULTIPATH_NUM)
365 dnl -------------------
366 dnl Check header files.
367 dnl -------------------
369 AC_CHECK_HEADERS([string.h stropts.h sys/conf.h sys/ksym.h sys/time.h \
370 sys/times.h sys/select.h sys/sysctl.h sys/sockio.h \
371 sys/types.h linux/version.h kvm.h netdb.h asm/types.h \
372 sys/param.h libutil.h limits.h stdint.h])
374 AC_CHECK_HEADERS([sys/socket.h netinet/in_systm.h netinet/in.h \
375 net/if_dl.h net/netopt.h inet/nd.h net/route.h \
376 net/if.h net/if_var.h netinet/in_var.h])
378 dnl V6 headers are checked below, after we check for v6
385 dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
387 [*-sunos5.[6-7]*] | [*-solaris2.[6-7]*])
389 AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.7)
390 AC_DEFINE(SUNOS_5, 1, SunOS 5)
391 AC_CHECK_LIB(xnet, main)
395 | [*-sunos5.1[0-9]] \
396 | [*-sunos5.1[0-9].[0-9]] \
397 | [*-solaris2.[8-9]] \
398 | [*-solaris2.1[0-9]] \
399 | [*-solaris2.1[0-9].[0-9]])
401 AC_DEFINE(SUNOS_59, 1, [SunOS 5.8 up])
402 AC_DEFINE(SUNOS_5, 1, [SunOS 5])
403 AC_CHECK_LIB(socket, main)
404 AC_CHECK_LIB(nsl, main)
405 AC_CHECK_LIB(umem, main)
406 AC_CHECK_FUNCS([printstack],
407 [AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
408 AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
412 *-sunos5* | *-solaris2*)
413 AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
414 AC_CHECK_LIB(socket, main)
415 AC_CHECK_LIB(nsl, main)
420 AC_DEFINE(GNU_LINUX,,GNU Linux)
423 AC_CHECK_LIB(nsl, gethostbyname)
424 AC_CHECK_LIB(socket, socket)
428 AC_DEFINE(OPEN_BSD,,OpenBSD)
432 OTHER_METHOD="mtu_kvm.o"
433 AC_CHECK_LIB(kvm, main)
437 AC_DEFINE(IRIX_65,,IRIX 6.5)
441 dnl ---------------------
442 dnl Integrated VTY option
443 dnl ---------------------
444 case "${enable_vtysh}" in
445 "yes") VTYSH="vtysh";
446 AC_DEFINE(VTYSH,,VTY shell)
447 AC_PATH_PROG(PERL, perl)
448 dnl Vtysh uses libreadline, which looks for termcap functions at
449 dnl configure time. We follow readline's search order.
450 dnl The required procedures are in libtermcap on NetBSD, in
451 dnl [TODO] on Linux, and in [TODO] on Solaris.
452 AC_CHECK_LIB(termcap, tputs, LIBREADLINE="$LIBREADLINE -ltermcap",
453 [AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
454 [AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
455 [AC_CHECK_LIB(ncurses, tputs,
456 LIBREADLINE="$LIBREADLINE -lncurses")]
460 AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
462 if test $ac_cv_lib_readline_main = no; then
463 AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
465 AC_CHECK_HEADER(readline/history.h)
466 if test $ac_cv_header_readline_history_h = no;then
467 AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
469 AC_CHECK_LIB(readline, rl_completion_matches,
470 LIBREADLINE="$LIBREADLINE",, "$LIBREADLINE")
471 if test $ac_cv_lib_readline_rl_completion_matches = no; then
472 AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
478 AC_SUBST(LIBREADLINE)
483 if test "$with_libpam" = "yes"; then
484 AC_CHECK_HEADER(security/pam_misc.h)
485 if test "$ac_cv_header_security_pam_misc_h" = yes; then
486 AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
487 AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
488 pam_conv_func="misc_conv"
490 AC_CHECK_HEADER(security/openpam.h)
491 if test "$ac_cv_header_security_openpam_h" = yes; then
492 AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
493 AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
494 pam_conv_func="openpam_ttyconv"
496 if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
497 AC_MSG_WARN([*** pam support will not be built ***])
502 if test "$with_libpam" = "yes"; then
503 dnl took this test from proftpd's configure.in and suited to our needs
504 dnl -------------------------------------------------------------------------
506 dnl This next check looks funky due to a linker problem with some versions
507 dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
508 dnl omitted requiring libdl linking information. PAM-0.72 or better ships
509 dnl with RedHat 6.2 and Debian 2.2 or better.
510 AC_CHECK_LIB(pam, pam_start,
511 [AC_CHECK_LIB(pam, $pam_conv_func,
512 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
514 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
515 LIBPAM="-lpam -lpam_misc"]
519 [AC_CHECK_LIB(pam, pam_end,
520 [AC_CHECK_LIB(pam, $pam_conv_func,
521 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
522 LIBPAM="-lpam -ldl"],
523 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
524 LIBPAM="-lpam -ldl -lpam_misc"]
526 ],AC_MSG_WARN([*** pam support will not be built ***]),
533 dnl -------------------------------
534 dnl Endian-ness check
535 dnl -------------------------------
538 dnl -------------------------------
539 dnl check the size in byte of the C
540 dnl -------------------------------
541 dnl AC_CHECK_SIZEOF(char)
542 dnl AC_CHECK_SIZEOF(int)
543 dnl AC_CHECK_SIZEOF(short)
544 dnl AC_CHECK_SIZEOF(long)
546 dnl ----------------------------
547 dnl check existance of functions
548 dnl ----------------------------
549 AC_CHECK_FUNCS(memset memcpy strerror inet_aton daemon snprintf vsnprintf \
550 strlcat strlcpy if_nametoindex if_indextoname getifaddrs \
551 fcntl strnlen strndup)
552 AC_CHECK_FUNCS(setproctitle, ,
553 [AC_CHECK_LIB(util, setproctitle,
555 AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
561 dnl ------------------------------------
562 dnl Determine routing get and set method
563 dnl ------------------------------------
564 AC_MSG_CHECKING(zebra between kernel interface method)
565 if test x"$opsys" = x"gnu-linux"; then
566 if test "${enable_netlink}" = "yes";then
567 AC_MSG_RESULT(netlink)
568 RT_METHOD=rt_netlink.o
569 AC_DEFINE(HAVE_NETLINK,,netlink)
571 elif test "${enable_netlink}" = "no"; then
576 AC_MSG_RESULT(netlink)
577 RT_METHOD=rt_netlink.o
578 AC_DEFINE(HAVE_NETLINK,,netlink)
581 elif test x"$opsys" = x"sol2-6";then
582 AC_MSG_RESULT(Route socket)
583 KERNEL_METHOD="kernel_socket.o"
584 RT_METHOD="rt_socket.o"
585 elif test x"$opsys" = x"sol8";then
586 AC_MSG_RESULT(Route socket)
587 KERNEL_METHOD="kernel_socket.o"
588 RT_METHOD="rt_socket.o"
589 elif test "$opsys" = "irix" ; then
590 AC_MSG_RESULT(Route socket)
591 KERNEL_METHOD="kernel_socket.o"
592 RT_METHOD="rt_socket.o"
594 AC_TRY_RUN([#include <errno.h>
595 #include <sys/types.h>
596 #include <sys/socket.h>
602 ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
603 if (ac_sock < 0 && errno == EINVAL)
607 [KERNEL_METHOD=kernel_socket.o
608 RT_METHOD=rt_socket.o
609 AC_MSG_RESULT(socket)],
610 [RT_METHOD=rt_ioctl.o
611 AC_MSG_RESULT(ioctl)],
612 [KERNEL_METHOD=kernel_socket.o
613 RT_METHOD=rt_socket.o
614 AC_MSG_RESULT(socket)])
617 AC_SUBST(KERNEL_METHOD)
618 AC_SUBST(OTHER_METHOD)
620 dnl ------------------------------------
621 dnl check for broken CMSG_FIRSTHDR macro
622 dnl ------------------------------------
623 AC_MSG_CHECKING(for broken CMSG_FIRSTHDR)
624 AC_RUN_IFELSE([AC_LANG_SOURCE([[
627 #define __EXTENSIONS__
630 #include <sys/types.h>
631 #include <sys/socket.h>
638 msg.msg_control = buf;
639 msg.msg_controllen = 0;
641 if (CMSG_FIRSTHDR(&msg) != NULL)
644 }]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
645 [AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
647 dnl ------------------------------
648 dnl check kernel route read method
649 dnl ------------------------------
650 AC_CACHE_CHECK(route read method check, zebra_rtread,
651 [if test "$netlink" = yes; then
652 RTREAD_METHOD="rtread_netlink.o"
653 zebra_rtread="netlink"
655 for zebra_rtread in /proc/net/route /dev/ip /dev/null;
657 test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
659 case $zebra_rtread in
660 "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
661 zebra_rtread="proc";;
664 *-freebsd*) RTREAD_METHOD=rtread_sysctl.o
665 zebra_rtread="sysctl";;
666 *) RTREAD_METHOD="rtread_getmsg.o"
667 zebra_rtread="getmsg";;
669 *) RTREAD_METHOD="rtread_sysctl.o"
670 zebra_rtread="sysctl";;
673 AC_SUBST(RTREAD_METHOD)
675 dnl -----------------------------
676 dnl check interface lookup method
677 dnl -----------------------------
679 AC_MSG_CHECKING(interface looking up method)
680 if test "$netlink" = yes; then
681 AC_MSG_RESULT(netlink)
682 IF_METHOD=if_netlink.o
683 elif test "$opsys" = "sol2-6";then
684 AC_MSG_RESULT(Solaris GIF)
686 elif test "$opsys" = "sol8";then
687 AC_MSG_RESULT(Solaris GLIF)
688 IF_METHOD=if_ioctl_solaris.o
689 IOCTL_METHOD=ioctl_solaris.o
690 elif test "$opsys" = "irix" ; then
693 elif test "$opsys" = "openbsd";then
694 AC_MSG_RESULT(openbsd)
696 elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
697 AC_MSG_RESULT(sysctl)
698 IF_METHOD=if_sysctl.o
699 AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
705 AC_SUBST(IOCTL_METHOD)
707 dnl ---------------------------------------------------------------
708 dnl figure out how to specify an interface in multicast sockets API
709 dnl ---------------------------------------------------------------
710 AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex],,,[#ifdef HAVE_SYS_TYPES_H
711 #include <sys/types.h>
713 #ifdef HAVE_NETINET_IN_H
714 #include <netinet/in.h>
717 AC_MSG_CHECKING([for BSD struct ip_mreq hack])
718 AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H
719 #include <sys/param.h>
720 #endif],[#if (defined(__FreeBSD__) && (__FreeBSD_version >= 500022 || (__FreeBSD_version < 500000 && __FreeBSD_version >= 440000))) || (defined(__NetBSD__) && defined(__NetBSD_Version__) && __NetBSD_Version__ >= 106010000)
723 #error No support for BSD struct ip_mreq hack detected
724 #endif],[AC_MSG_RESULT(yes)
725 AC_DEFINE(HAVE_BSD_STRUCT_IP_MREQ_HACK,,[Can pass ifindex in struct ip_mreq])],
728 dnl -----------------------
729 dnl check proc file system.
730 dnl -----------------------
731 if test -r /proc/net/dev; then
732 AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
736 if test -r /proc/net/if_inet6; then
737 AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
742 dnl -----------------------------
743 dnl check ipforward detect method
744 dnl -----------------------------
745 AC_CACHE_CHECK(ipforward method check, zebra_ipforward_path,
746 [for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
748 test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
750 case $zebra_ipforward_path in
751 "/proc/net/snmp") IPFORWARD=ipforward_proc.o
752 zebra_ipforward_path="proc";;
755 *-nec-sysv4*) IPFORWARD=ipforward_ews.o
756 zebra_ipforward_path="ews";;
757 *-freebsd*) IPFORWARD=ipforward_sysctl.o
758 zebra_ipforward_path="sysctl";;
759 *) IPFORWARD=ipforward_solaris.o
760 zebra_ipforward_path="solaris";;
762 *) IPFORWARD=ipforward_sysctl.o
763 zebra_ipforward_path="sysctl";;
767 AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
772 AC_MSG_CHECKING(whether does this OS have IPv6 stack)
773 if test "${enable_ipv6}" = "no"; then
774 AC_MSG_RESULT(disabled)
779 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
781 AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
782 AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
786 AC_MSG_RESULT(INRIA IPv6)
790 elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
792 AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
793 AC_DEFINE(KAME,1,KAME IPv6)
796 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
797 LIB_IPV6="-L/usr/local/v6/lib -linet6"
800 dnl -------------------------
802 dnl default host check
803 dnl It is not used by Kheops
804 dnl -------------------------
805 elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
807 AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
808 AC_DEFINE(MUSICA,1,Musica IPv6 stack)
809 AC_DEFINE(KAME,1,KAME IPv6 stack)
812 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
813 LIB_IPV6="-L/usr/local/v6/lib -linet6"
815 AC_MSG_RESULT(MUSICA)
819 elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
821 AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
825 if test x"$opsys" = x"bsdi";then
826 AC_DEFINE(BSDI_NRL,,BSDI)
827 AC_MSG_RESULT(BSDI_NRL)
831 dnl ------------------------------------
832 dnl Solaris 9, 10 and potentially higher
833 dnl ------------------------------------
834 elif test x"$opsys" = x"sol8"; then
836 AC_DEFINE(HAVE_IPV6, 1, IPv6)
837 AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
840 AC_MSG_RESULT(Solaris IPv6)
844 elif test "${enable_ipv6}" = "yes"; then
846 #include <linux/version.h>
847 /* 2.1.128 or later */
848 #if LINUX_VERSION_CODE >= 0x020180
852 zebra_cv_linux_ipv6=yes
853 AC_MSG_RESULT(Linux IPv6)])
855 if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
858 zebra_cv_linux_ipv6=yes
859 AC_MSG_RESULT(Linux IPv6)
863 if test "$zebra_cv_linux_ipv6" = "yes";then
864 AC_MSG_CHECKING(whether libc has IPv6 support)
865 AC_TRY_LINK([#include <netinet/in.h>
866 ],[ int a; a = (int) in6addr_any.s6_addr[0]; if (a != 12345) return a; ],
869 zebra_cv_linux_ipv6=yes],
872 zebra_cv_linux_ipv6=no])
875 if test "$zebra_cv_linux_ipv6" = "yes";then
876 AC_MSG_CHECKING(for GNU libc >= 2.1)
877 AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
879 #include <features.h>
880 #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
884 AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
890 if test "$glibc" != "yes"; then
891 INCLUDES="-I/usr/inet6/include"
892 if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
893 LIB_IPV6="-L/usr/inet6/lib -linet6"
898 dnl -----------------------
899 dnl Set IPv6 related values
900 dnl -----------------------
901 LIBS="$LIB_IPV6 $LIBS"
904 if test x"$RIPNGD" = x""; then
905 AC_MSG_RESULT(IPv4 only)
909 dnl ------------------
910 dnl IPv6 header checks
911 dnl ------------------
912 if test "x${zebra_cv_ipv6}" = "xyes"; then
913 AC_CHECK_HEADERS([netinet6/in6.h netinet/in6_var.h netinet/icmp6.h \
914 netinet6/in6_var.h netinet6/nd6.h])
917 dnl --------------------
918 dnl Daemon disable check
919 dnl --------------------
920 if test "${enable_zebra}" = "no";then
926 if test "${enable_bgpd}" = "no";then
932 if test "${enable_ripd}" = "no";then
938 if test "${enable_ospfd}" = "no";then
944 if test "${enable_watchquagga}" = "no";then
947 WATCHQUAGGA="watchquagga"
951 if test "${enable_opaque_lsa}" = "yes"; then
952 if test "${enable_ospfapi}" != "no";then
953 AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
955 if test "${enable_ospfclient}" != "no";then
956 OSPFCLIENT="ospfclient"
962 case "${enable_ripngd}" in
963 "yes") RIPNGD="ripngd";;
968 case "${enable_ospf6d}" in
969 "yes") OSPF6D="ospf6d";;
974 case "${enable_isisd}" in
975 "yes") ISISD="isisd";;
980 if test "${enable_bgp_announce}" = "no";then
981 AC_DEFINE(DISABLE_BGP_ANNOUNCE,,Disable BGP installation to zebra)
990 AC_SUBST(WATCHQUAGGA)
997 AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
998 AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
999 AC_CHECK_LIB(crypt, crypt)
1000 AC_CHECK_LIB(resolv, res_init)
1001 AC_CHECK_LIB(m, main)
1003 dnl ---------------------------------------------------
1004 dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
1005 dnl ---------------------------------------------------
1006 AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
1007 AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
1008 AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
1010 dnl ---------------------------
1011 dnl check system has GNU regexp
1012 dnl ---------------------------
1013 dnl AC_MSG_CHECKING(whether system has GNU regex)
1014 AC_CHECK_LIB(c, regexec,
1015 [AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
1017 [LIB_REGEX="regex.o"])
1020 dnl ------------------
1021 dnl check Net-SNMP library
1022 dnl ------------------
1023 if test "${enable_snmp}" = "yes"; then
1024 LIBS="${LIBS} -lcrypto"
1025 AC_CHECK_LIB(netsnmp, asn_parse_int,
1026 [AC_DEFINE(HAVE_NETSNMP,,Net SNMP)
1027 AC_DEFINE(HAVE_SNMP,,SNMP)
1028 LIBS="${LIBS} -lnetsnmp"],
1029 [AC_MSG_ERROR([--enable-snmp given, but cannot find support for SNMP])])
1031 for ac_snmp in /usr/include \
1032 /usr/local/include \
1034 test -f "${ac_snmp}/net-snmp/library/asn1.h" && break
1039 AC_MSG_ERROR([--enable-snmp given, but can not find header])
1042 SNMP_INCLUDES="-I${ac_snmp}/net-snmp"
1043 SNMP_INCLUDES="${SNMP_INCLUDES} -I${ac_snmp}/net-snmp/library"
1047 AC_SUBST(SNMP_INCLUDES)
1050 dnl ----------------------------
1051 dnl check sa_len of sockaddr
1052 dnl ----------------------------
1053 AC_MSG_CHECKING(whether struct sockaddr has a sa_len field)
1054 AC_TRY_COMPILE([#include <sys/types.h>
1055 #include <sys/socket.h>
1056 ],[static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);],
1058 AC_DEFINE(HAVE_SA_LEN,,sa_len)],
1061 dnl ----------------------------
1062 dnl check sin_len of sockaddr_in
1063 dnl ----------------------------
1064 AC_MSG_CHECKING(whether struct sockaddr_in has a sin_len field)
1065 AC_TRY_COMPILE([#include <sys/types.h>
1066 #include <netinet/in.h>
1067 ],[static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);],
1069 AC_DEFINE(HAVE_SIN_LEN,,sin_len)],
1072 dnl ----------------------------
1073 dnl check sun_len of sockaddr_un
1074 dnl ----------------------------
1075 AC_MSG_CHECKING(whether struct sockaddr_un has a sun_len field)
1076 AC_TRY_COMPILE([#include <sys/types.h>
1078 ],[static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);],
1080 AC_DEFINE(HAVE_SUN_LEN,,sun_len)],
1083 dnl -----------------------------------
1084 dnl check sin6_scope_id of sockaddr_in6
1085 dnl -----------------------------------
1086 if test "$zebra_cv_ipv6" = yes; then
1087 AC_MSG_CHECKING(whether struct sockaddr_in6 has a sin6_scope_id field)
1088 AC_TRY_COMPILE([#include <sys/types.h>
1089 #include <netinet/in.h>
1090 ],[static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);],
1092 AC_DEFINE(HAVE_SIN6_SCOPE_ID,,scope id)],
1096 dnl ----------------------------
1097 dnl check socklen_t exist or not
1098 dnl ----------------------------
1099 AC_MSG_CHECKING(whther socklen_t is defined)
1100 AC_TRY_COMPILE([#include <sys/types.h>
1101 #include <sys/socket.h>
1102 #include <netinet/in.h>
1103 ],[socklen_t ac_x;],
1105 AC_DEFINE(HAVE_SOCKLEN_T,,socklen_t)],
1108 dnl ------------------------
1109 dnl check struct sockaddr_dl
1110 dnl ------------------------
1111 AC_MSG_CHECKING(whether struct sockaddr_dl exist)
1112 AC_EGREP_HEADER(sockaddr_dl,
1115 AC_DEFINE(HAVE_SOCKADDR_DL,,sockaddr_dl)],
1118 dnl --------------------------
1119 dnl check structure ifaliasreq
1120 dnl --------------------------
1121 AC_MSG_CHECKING(whether struct ifaliasreq exist)
1122 AC_EGREP_HEADER(ifaliasreq,
1125 AC_DEFINE(HAVE_IFALIASREQ,,ifaliasreq)],
1128 dnl ----------------------------
1129 dnl check structure in6_aliasreq
1130 dnl ----------------------------
1131 AC_MSG_CHECKING(whether struct in6_aliasreq exist)
1132 AC_EGREP_HEADER(in6_aliasreq,
1135 AC_DEFINE(HAVE_IN6_ALIASREQ,,in6_aliasreq)],
1138 dnl -----------------------------------
1139 dnl check ifra_lifetime of in6_aliasreq
1140 dnl -----------------------------------
1141 AC_MSG_CHECKING(whether in6_aliasreq.ifra_lifetime exist)
1142 AC_TRY_COMPILE([#include <sys/types.h>
1143 #include <netinet6/in6_var.h>
1144 ],[static struct if6_aliasreq ac_i;int ac_j = sizeof (ac_i.ifra_lifetime);],
1146 AC_DEFINE(HAVE_IFRA_LIFETIME,,Have in6_aliasreq.ifra_lifetime)],
1149 dnl ---------------------------
1150 dnl check structure rt_addrinfo
1151 dnl ---------------------------
1152 AC_MSG_CHECKING(whether struct rt_addrinfo exist)
1153 AC_EGREP_HEADER(rt_addrinfo,
1156 AC_DEFINE(HAVE_RT_ADDRINFO,,rt_addrinfo)],
1159 dnl --------------------------
1160 dnl check structure in_pktinfo
1161 dnl --------------------------
1162 AC_MSG_CHECKING(whether struct in_pktinfo exist)
1163 AC_TRY_COMPILE([#include <netinet/in.h>
1164 ],[struct in_pktinfo ac_x;],
1166 AC_DEFINE(HAVE_INPKTINFO,,in_pktinfo)],
1169 dnl ----------------------------------
1170 dnl check struct nd_opt_homeagent_info
1171 dnl ----------------------------------
1172 AC_MSG_CHECKING(whether struct nd_opt_homeagent_info exist)
1173 AC_EGREP_HEADER(nd_opt_homeagent_info,
1176 AC_DEFINE(HAVE_ND_OPT_HOMEAGENT_INFO,,nd_opt_homeagent_info)],
1179 dnl --------------------------------
1180 dnl check struct nd_opt_adv_interval
1181 dnl --------------------------------
1182 AC_MSG_CHECKING(whether struct nd_opt_adv_interval exist)
1183 AC_EGREP_HEADER(nd_opt_adv_interval,
1186 AC_DEFINE(HAVE_ND_OPT_ADV_INTERVAL,,nd_opt_adv_interval)],
1189 dnl ------------------------------------
1190 dnl check fields in nd_opt_adv_interval
1191 dnl ------------------------------------
1192 AC_MSG_CHECKING(whether nd_opt_ai_type field exist)
1193 AC_EGREP_HEADER(nd_opt_ai_type,
1196 AC_DEFINE(HAVE_ND_OPT_ADV_INTERVAL_AI_FIELDS,,nd_opt_ai_type)],
1199 dnl --------------------------------------
1200 dnl checking for getrusage struct and call
1201 dnl --------------------------------------
1202 AC_MSG_CHECKING(whether getrusage is available)
1203 AC_TRY_COMPILE([#include <sys/resource.h>
1204 ],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
1206 AC_DEFINE(HAVE_RUSAGE,,rusage)],
1209 dnl -------------------
1210 dnl capabilities checks
1211 dnl -------------------
1212 if test "${enable_capabilities}" != "no"; then
1213 AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
1214 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
1216 AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
1217 quagga_ac_keepcaps="yes"],
1220 if test x"${quagga_ac_keepcaps}" = x"yes"; then
1221 AC_CHECK_HEADERS(sys/capability.h)
1223 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
1224 AC_CHECK_LIB(cap, cap_init,
1225 [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
1227 quagga_ac_lcaps="yes"]
1230 AC_CHECK_HEADERS(priv.h,
1231 [AC_MSG_CHECKING(Solaris style privileges are available)
1232 AC_TRY_COMPILE([#include <priv.h>],[getpflags(PRIV_AWARE);],
1234 AC_DEFINE(HAVE_SOLARIS_CAPABILITIES,1,getpflags)
1235 quagga_ac_scaps="yes"],
1241 if test x"${quagga_ac_scaps}" = x"yes" \
1242 -o x"${quagga_ac_lcaps}" = x"yes"; then
1243 AC_DEFINE(HAVE_CAPABILITIES,1,capabilities)
1248 dnl -------------------
1249 dnl test for ucontext.h
1250 dnl -------------------
1251 AC_CHECK_HEADERS(ucontext.h)
1253 dnl ---------------------------
1254 dnl check for glibc 'backtrace'
1255 dnl ---------------------------
1256 if test "${glibc}" = "yes"; then
1257 AC_CHECK_HEADER([execinfo.h],
1258 [AC_CHECK_FUNC([backtrace],
1259 [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
1260 AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
1265 dnl -----------------------------------------
1266 dnl check for malloc mallinfo struct and call
1267 dnl this must try and link using LIBS, in
1268 dnl order to check no alternative allocator
1269 dnl has been specified, which might not provide
1270 dnl mallinfo, e.g. such as Umem on Solaris.
1271 dnl -----------------------------------------
1272 AC_CHECK_HEADERS(malloc.h,
1273 [AC_MSG_CHECKING(whether mallinfo is available)
1274 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]],
1275 [[struct mallinfo ac_x; ac_x = mallinfo ();]])],
1277 AC_DEFINE(HAVE_MALLINFO,,mallinfo)],
1286 CONFDATE=`date '+%Y%m%d'`
1289 dnl ------------------------------
1290 dnl set paths for state directory
1291 dnl ------------------------------
1292 if test "${prefix}" = "NONE"; then
1293 quagga_statedir_prefix="";
1295 quagga_statedir_prefix=${prefix}
1297 if test "${localstatedir}" = '${prefix}/var'; then
1298 AC_CACHE_CHECK(state directory,ac_statedir,
1299 [for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
1300 ${quagga_statedir_prefix}/var/adm dnl
1301 ${quagga_statedir_prefix}/etc dnl
1307 test -d $QUAGGA_STATE_DIR && break
1309 quagga_statedir=$QUAGGA_STATE_DIR])
1311 quagga_statedir=${localstatedir}
1312 AC_MSG_CHECKING(directory to use for state file)
1313 AC_MSG_RESULT(${quagga_statedir})
1314 AC_SUBST(quagga_statedir)
1316 if test $quagga_statedir = "/dev/null"; then
1317 AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
1320 AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
1321 AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
1322 AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
1323 AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
1324 AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
1325 AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
1326 AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$quagga_statedir/isisd.pid",isisd PID)
1327 AC_DEFINE_UNQUOTED(PATH_WATCHQUAGGA_PID, "$quagga_statedir/watchquagga.pid",watchquagga PID)
1328 AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
1329 AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
1330 AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
1331 AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
1332 AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
1333 AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
1334 AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
1335 AC_DEFINE_UNQUOTED(ISIS_VTYSH_PATH, "$quagga_statedir/isisd.vty",isisd vty socket)
1336 AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$quagga_statedir",daemon vty directory)
1338 dnl -------------------------------
1339 dnl Quagga sources should always be
1340 dnl current wrt interfaces. Dont
1341 dnl allow deprecated interfaces to
1343 dnl -------------------------------
1344 AC_DEFINE(QUAGGA_NO_DEPRECATED_INTERFACES, 1, Hide deprecated interfaces)
1346 dnl ---------------------------
1347 dnl Check htonl works correctly
1348 dnl ---------------------------
1349 AC_MSG_CHECKING(for working htonl)
1350 AC_CACHE_VAL(ac_cv_htonl_works, [
1351 AC_TRY_LINK([#ifdef HAVE_SYS_TYPES_H
1352 #include <sys/types.h>
1357 #ifdef HAVE_NETINET_IN_H
1358 #include <netinet/in.h>
1361 ac_cv_htonl_works=yes,
1362 ac_cv_htonl_works=no)])
1363 AC_MSG_RESULT($ac_cv_htonl_works)
1365 AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
1366 ripngd/Makefile bgpd/Makefile ospfd/Makefile watchquagga/Makefile
1367 ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile
1368 ospfclient/Makefile tests/Makefile m4/Makefile redhat/Makefile
1373 isisd/topology/Makefile
1374 pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh
1375 pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh])
1376 AC_CONFIG_FILES([solaris/Makefile])
1378 AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
1379 ## Hack, but working solution to avoid rebuilding of quagga.info.
1380 ## It's already in CVS until texinfo 4.7 is more common.
1381 AC_CONFIG_COMMANDS([info-time],[touch doc/quagga.info])
1385 Quagga configuration
1386 --------------------
1387 quagga version : ${PACKAGE_VERSION}
1388 host operationg system : ${host_os}
1389 source code location : ${srcdir}
1391 compiler flags : ${CFLAGS}
1392 includes : ${INCLUDES} ${SNMP_INCLUDES}
1393 linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE}
1394 state file directory : ${quagga_statedir}
1395 config file directory : `eval echo \`echo ${sysconfdir}\``
1396 example directory : `eval echo \`echo ${exampledir}\``
1397 user to run as : ${enable_user}
1398 group to run as : ${enable_group}
1399 group for vty sockets : ${enable_vty_group}
1400 config file mask : ${enable_configfile_mask}
1401 log file mask : ${enable_logfile_mask}
1403 The above user and group must have read/write access to the state file
1404 directory and to the config files in the config file directory."
1406 if test x"$quagga_cv_gnu_make" = x"no"; then echo "
1407 Warning: The ${MAKE-make} programme detected, either in your path or
1408 via the MAKE variable, is not GNU Make. GNU make may be installed as
1409 gmake on some systems. and is required to complete a build of Quagga