]> git.proxmox.com Git - mirror_frr.git/blob - configure.ac
3c03282e8933ebfaea61f671c76a5d97e8c0f500
[mirror_frr.git] / configure.ac
1 ##
2 ## Configure template file for Quagga.
3 ## autoconf will generate configure script.
4 ##
5 ## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
6 ## Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
7 ##
8 ## $Id: configure.ac,v 1.60 2004/08/26 12:21:28 hasso Exp $
9 AC_PREREQ(2.53)
10
11 AC_INIT(quagga, 0.96.5, [http://bugzilla.quagga.net])
12 AC_CONFIG_SRCDIR(lib/zebra.h)
13 AM_INIT_AUTOMAKE(1.6)
14 AM_CONFIG_HEADER(config.h)
15
16 dnl default is to match previous behavior
17 exampledir=${sysconfdir}
18 AC_ARG_ENABLE([exampledir],
19 AC_HELP_STRING([--enable-exampledir],
20 [specify alternate directory for examples]),
21 exampledir="$enableval",)
22 dnl XXX add --exampledir to autoconf standard directory list somehow
23 AC_SUBST(exampledir)
24
25 dnl -----------------------------------
26 dnl Get hostname and other information.
27 dnl -----------------------------------
28 AC_CANONICAL_HOST
29
30 dnl ------------
31 dnl Check CFLAGS
32 dnl ------------
33 AC_ARG_WITH(cflags,
34 [ --with-cflags Set CFLAGS for use in compilation.])
35 if test "x$with_cflags" != "x" ; then
36 CFLAGS="$with_cflags" ; cflags_specified=yes ;
37 elif test -n "$CFLAGS" ; then
38 cflags_specified=yes ;
39 fi
40
41 dnl --------
42 dnl Check CC
43 dnl --------
44 AC_PROG_CC
45
46 dnl -----------------------------------------
47 dnl If CLFAGS doesn\'t exist set default value
48 dnl -----------------------------------------
49 dnl (Wall is gcc specific... have to make sure
50 dnl gcc is being used before setting it)
51 dnl
52 if test "x$cflags_specified" = "x" ; then
53 CFLAGS="$CFLAGS -O"
54 fi
55
56 dnl --------------
57 dnl Check programs
58 dnl --------------
59 AC_PROG_CPP
60 AC_PROG_INSTALL
61 AC_PROG_MAKE_SET
62 AC_CHECK_TOOL(AR, ar)
63 AC_CHECK_TOOL(RANLIB, ranlib, :)
64
65 dnl ---------
66 dnl AIX check
67 dnl ---------
68 AC_AIX
69
70 dnl -------
71 dnl libtool
72 dnl -------
73 AC_PROG_LIBTOOL
74
75 dnl ----------------------
76 dnl Packages configuration
77 dnl ----------------------
78 AC_ARG_ENABLE(vtysh,
79 [ --enable-vtysh include integrated vty shell for Quagga])
80 AC_ARG_ENABLE(ipv6,
81 [ --disable-ipv6 turn off IPv6 related features and daemons])
82 AC_ARG_ENABLE(zebra,
83 [ --disable-zebra do not build zebra daemon])
84 AC_ARG_ENABLE(bgpd,
85 [ --disable-bgpd do not build bgpd])
86 AC_ARG_ENABLE(ripd,
87 [ --disable-ripd do not build ripd])
88 AC_ARG_ENABLE(ripngd,
89 [ --disable-ripngd do not build ripngd])
90 AC_ARG_ENABLE(ospfd,
91 [ --disable-ospfd do not build ospfd])
92 AC_ARG_ENABLE(ospf6d,
93 [ --disable-ospf6d do not build ospf6d])
94 AC_ARG_ENABLE(isisd,
95 [ --disable-isisd do not build isisd])
96 AC_ARG_ENABLE(bgp-announce,
97 [ --disable-bgp-announce, turn off BGP route announcement])
98 AC_ARG_ENABLE(netlink,
99 [ --enable-netlink force to use Linux netlink interface])
100 AC_ARG_ENABLE(broken-aliases,
101 [ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
102 AC_ARG_ENABLE(snmp,
103 [ --enable-snmp enable SNMP support])
104 AC_ARG_WITH(libpam,
105 [ --with-libpam use libpam for PAM support in vtysh])
106 AC_ARG_ENABLE(tcp-zebra,
107 [ --enable-tcp-zebra enable TCP/IP socket connection between zebra and protocol daemon])
108 AC_ARG_ENABLE(opaque-lsa,
109 [ --enable-opaque-lsa enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
110 AC_ARG_ENABLE(ospfapi,
111 [ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database,
112 (this is the default if --enable-opaque-lsa is not set)])
113 AC_ARG_ENABLE(ospfclient,
114 [ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
115 (this is the default if --disable-ospfapi is set)])
116 AC_ARG_ENABLE(ospf-te,
117 [ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
118 AC_ARG_ENABLE(multipath,
119 [ --enable-multipath=ARG enable multipath function, ARG must be digit])
120 AC_ARG_ENABLE(quagga_user,
121 [ --enable-user=ARG user to run Quagga suite as (default quagga)])
122 AC_ARG_ENABLE(quagga_group,
123 [ --enable-group=ARG group to run Quagga suite as (default quagga)])
124 AC_ARG_ENABLE(vty_group,
125 [ --enable-vty-group=ARG set vty sockets to have specified group as owner])
126 AC_ARG_ENABLE(configfile_mask,
127 [ --enable-configfile-mask=ARG set mask for config files])
128 AC_ARG_ENABLE(logfile_mask,
129 [ --enable-logfile-mask=ARG set mask for log files])
130
131 AC_ARG_ENABLE(rtadv,
132 [ --disable-rtadv disable IPV6 router advertisement feature])
133 AC_ARG_ENABLE(irdp,
134 [ --enable-irdp enable IRDP server support in zebra])
135 AC_ARG_ENABLE(capabilities,
136 [ --disable-capabilities disable using POSIX capabilities])
137
138 if test "${enable_broken_aliases}" = "yes"; then
139 if test "${enable_netlink}" = "yes"
140 then
141 echo "Sorry, you can't use netlink with broken aliases"
142 exit 1
143 fi
144 AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
145 enable_netlink=no
146 fi
147
148 if test "${enable_tcp_zebra}" = "yes"; then
149 AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
150 fi
151
152 if test "${enable_opaque_lsa}" = "yes"; then
153 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
154 fi
155
156 if test "${enable_ospf_te}" = "yes"; then
157 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
158 AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
159 fi
160
161 AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
162 if test "${enable_rtadv}" != "no"; then
163 AC_MSG_RESULT(yes)
164 AC_DEFINE(HAVE_RTADV,,Enable IPv6 Routing Advertisement support)
165 else
166 AC_MSG_RESULT(no)
167 fi
168
169 if test "${enable_irdp}" = "yes"; then
170 AC_DEFINE(HAVE_IRDP,, IRDP )
171 fi
172
173 if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
174 enable_user="quagga"
175 elif test "${enable_user}" = "no"; then
176 enable_user="root"
177 fi
178 AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
179
180 if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
181 enable_group="quagga"
182 elif test "${enable_group}" = "no"; then
183 enable_group="root"
184 fi
185 AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
186
187 if test x"${enable_vty_group}" = x"yes" ; then
188 AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
189 elif test x"${enable_vty_group}" != x""; then
190 if test x"${enable_vty_group}" != x"no"; then
191 AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
192 fi
193 fi
194
195 enable_configfile_mask=${enable_configfile_mask:-0600}
196 AC_DEFINE_UNQUOTED(CONFIGFILE_MASK, ${enable_configfile_mask}, Mask for config files)
197
198 enable_logfile_mask=${enable_logfile_mask:-0600}
199 AC_DEFINE_UNQUOTED(LOGFILE_MASK, ${enable_logfile_mask}, Mask for log files)
200
201 changequote(, )dnl
202
203 MULTIPATH_NUM=1
204
205 case "${enable_multipath}" in
206 [0-9]|[1-9][0-9])
207 MULTIPATH_NUM="${enable_multipath}"
208 ;;
209 "")
210 ;;
211 *)
212 echo "Please specify digit to --enable-multipath ARG."
213 exit 1
214 ;;
215 esac
216
217 changequote([, ])dnl
218
219 AC_SUBST(MULTIPATH_NUM)
220
221 dnl -------------------
222 dnl Check header files.
223 dnl -------------------
224 AC_HEADER_STDC
225 AC_CHECK_HEADERS([string.h stropts.h sys/conf.h sys/ksym.h sys/time.h \
226 sys/times.h sys/select.h sys/sysctl.h sys/sockio.h \
227 sys/types.h linux/version.h kvm.h netdb.h asm/types.h \
228 libutil.h limits.h])
229
230 AC_CHECK_HEADERS([sys/socket.h netinet/in_systm.h netinet/in.h \
231 net/if_dl.h net/netopt.h inet/nd.h net/route.h \
232 net/if.h net/if_var.h netinet/in_var.h])
233
234 dnl V6 headers are checked below, after we check for v6
235
236 dnl check some types
237 AC_C_CONST
238 dnl AC_TYPE_PID_T
239 AC_TYPE_SIGNAL
240
241 dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
242 case "$host" in
243 [*-sunos5.[6-8]*] | [*-solaris2.[6-8]*])
244 opsys=sol2-6
245 AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.8)
246 AC_DEFINE(SUNOS_5, 1, SunOS 5)
247 AC_CHECK_LIB(xnet, main)
248 CURSES=-lcurses
249 ;;
250 [*-sunos5.[8-9]] | [*-sunos5.1[0-9]] \
251 | [*-solaris2.[8-9]] | [*-solaris2.1[0-9]])
252 opsys=sol9
253 AC_DEFINE(SUNOS_59,,SunOS 5.9 up)
254 AC_DEFINE(SUNOS_5, 1, SunOS 5)
255 AC_CHECK_LIB(socket, main)
256 AC_CHECK_LIB(nsl, main)
257 CURSES=-lcurses
258 ;;
259 *-sunos5* | *-solaris2*)
260 AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
261 AC_CHECK_LIB(socket, main)
262 AC_CHECK_LIB(nsl, main)
263 CURSES=-lcurses
264 ;;
265 *-linux-*)
266 opsys=gnu-linux
267 AC_DEFINE(GNU_LINUX,,GNU Linux)
268 ;;
269 *-nec-sysv4*)
270 AC_CHECK_LIB(nsl, gethostbyname)
271 AC_CHECK_LIB(socket, socket)
272 ;;
273 *-freebsd3.2)
274 AC_DEFINE(FREEBSD_32,,FreeBSD 3.2)
275 ;;
276 *-openbsd*)
277 opsys=openbsd
278 AC_DEFINE(OPEN_BSD,,OpenBSD)
279 ;;
280 *-bsdi*)
281 opsys=bsdi
282 OTHER_METHOD="mtu_kvm.o"
283 AC_CHECK_LIB(kvm, main)
284 ;;
285 *-irix6.5)
286 opsys=irix
287 AC_DEFINE(IRIX_65,,IRIX 6.5)
288 ;;
289 esac
290
291 dnl ---------------------
292 dnl Integrated VTY option
293 dnl ---------------------
294 case "${enable_vtysh}" in
295 "yes") VTYSH="vtysh";
296 AC_DEFINE(VTYSH,,VTY shell)
297 AC_PATH_PROG(PERL, perl)
298 dnl Vtysh uses libreadline, which looks for termcap functions at
299 dnl configure time. We follow readline's search order.
300 dnl The required procedures are in libtermcap on NetBSD, in
301 dnl [TODO] on Linux, and in [TODO] on Solaris.
302 AC_CHECK_LIB(termcap, tputs, ,
303 AC_CHECK_LIB(tinfo, tputs, ,
304 AC_CHECK_LIB(curses, tputs, ,
305 AC_CHECK_LIB(ncurses, tputs))))
306 AC_CHECK_LIB(readline, main)
307 if test $ac_cv_lib_readline_main = no; then
308 AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
309 fi
310 AC_CHECK_HEADER(readline/history.h)
311 if test $ac_cv_header_readline_history_h = no;then
312 AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
313 fi
314 AC_CHECK_LIB(readline, rl_completion_matches)
315 if test $ac_cv_lib_readline_rl_completion_matches = no; then
316 AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
317 fi
318 ;;
319 "no" ) VTYSH="";;
320 * ) ;;
321 esac
322
323 dnl ----------
324 dnl PAM module
325 dnl ----------
326 if test "$with_libpam" = "yes"; then
327 AC_CHECK_HEADER(security/pam_misc.h)
328 if test "$ac_cv_header_security_pam_misc_h" = yes; then
329 AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
330 AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
331 pam_conv_func="misc_conv"
332 fi
333 AC_CHECK_HEADER(security/openpam.h)
334 if test "$ac_cv_header_security_openpam_h" = yes; then
335 AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
336 AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
337 pam_conv_func="openpam_ttyconv"
338 fi
339 if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
340 AC_MSG_WARN([*** pam support will not be built ***])
341 with_libpam="no"
342 fi
343 fi
344
345 if test "$with_libpam" = "yes"; then
346 dnl took this test from proftpd's configure.in and suited to our needs
347 dnl -------------------------------------------------------------------------
348 dnl
349 dnl This next check looks funky due to a linker problem with some versions
350 dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
351 dnl omitted requiring libdl linking information. PAM-0.72 or better ships
352 dnl with RedHat 6.2 and Debian 2.2 or better.
353 AC_CHECK_LIB(pam, pam_start,
354 [AC_CHECK_LIB(pam, $pam_conv_func,
355 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
356 LIBPAM="-lpam"],
357 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
358 LIBPAM="-lpam -lpam_misc"]
359 )
360 ],
361
362 [AC_CHECK_LIB(pam, pam_end,
363 [AC_CHECK_LIB(pam, $pam_conv_func,
364 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
365 LIBPAM="-lpam -ldl"],
366 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
367 LIBPAM="-lpam -ldl -lpam_misc"]
368 )
369 ],AC_MSG_WARN([*** pam support will not be built ***]),
370 [-ldl])
371 ]
372 )
373 fi
374 AC_SUBST(LIBPAM)
375
376 dnl -------------------------------
377 dnl Endian-ness check
378 dnl -------------------------------
379 AC_WORDS_BIGENDIAN
380
381 dnl -------------------------------
382 dnl check the size in byte of the C
383 dnl -------------------------------
384 dnl AC_CHECK_SIZEOF(char)
385 dnl AC_CHECK_SIZEOF(int)
386 dnl AC_CHECK_SIZEOF(short)
387 dnl AC_CHECK_SIZEOF(long)
388
389 dnl ----------------------------
390 dnl check existance of functions
391 dnl ----------------------------
392 AC_CHECK_FUNCS(memset memcpy strerror inet_aton daemon snprintf vsnprintf \
393 strlcat strlcpy if_nametoindex if_indextoname getifaddrs \
394 fcntl)
395 AC_CHECK_FUNCS(setproctitle, ,
396 [AC_CHECK_LIB(util, setproctitle,
397 [LIBS="$LIBS -lutil"
398 AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
399 ]
400 )
401 ]
402 )
403
404 dnl ------------------------------------
405 dnl Determine routing get and set method
406 dnl ------------------------------------
407 AC_MSG_CHECKING(zebra between kernel interface method)
408 if test x"$opsys" = x"gnu-linux"; then
409 if test "${enable_netlink}" = "yes";then
410 AC_MSG_RESULT(netlink)
411 RT_METHOD=rt_netlink.o
412 AC_DEFINE(HAVE_NETLINK,,netlink)
413 netlink=yes
414 elif test "${enable_netlink}" = "no"; then
415 AC_MSG_RESULT(ioctl)
416 RT_METHOD=rt_ioctl.o
417 netlink=no
418 else
419 AC_MSG_RESULT(netlink)
420 RT_METHOD=rt_netlink.o
421 AC_DEFINE(HAVE_NETLINK,,netlink)
422 netlink=yes
423 fi
424 elif test x"$opsys" = x"sol2-6";then
425 AC_MSG_RESULT(Route socket)
426 KERNEL_METHOD="kernel_socket.o"
427 RT_METHOD="rt_socket.o"
428 elif test x"$opsys" = x"sol9";then
429 AC_MSG_RESULT(Route socket)
430 KERNEL_METHOD="kernel_socket.o"
431 RT_METHOD="rt_socket.o"
432 elif test "$opsys" = "irix" ; then
433 AC_MSG_RESULT(Route socket)
434 KERNEL_METHOD="kernel_socket.o"
435 RT_METHOD="rt_socket.o"
436 else
437 AC_TRY_RUN([#include <errno.h>
438 #include <sys/types.h>
439 #include <sys/socket.h>
440
441 main ()
442 {
443 int ac_sock;
444
445 ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
446 if (ac_sock < 0 && errno == EINVAL)
447 exit (1);
448 exit (0);
449 }],
450 [KERNEL_METHOD=kernel_socket.o
451 RT_METHOD=rt_socket.o
452 AC_MSG_RESULT(socket)],
453 [RT_METHOD=rt_ioctl.o
454 AC_MSG_RESULT(ioctl)],
455 [KERNEL_METHOD=kernel_socket.o
456 RT_METHOD=rt_socket.o
457 AC_MSG_RESULT(socket)])
458 fi
459 AC_SUBST(RT_METHOD)
460 AC_SUBST(KERNEL_METHOD)
461 AC_SUBST(OTHER_METHOD)
462
463 dnl ------------------------------
464 dnl check kernel route read method
465 dnl ------------------------------
466 AC_CACHE_CHECK(route read method check, zebra_rtread,
467 [if test "$netlink" = yes; then
468 RTREAD_METHOD="rtread_netlink.o"
469 zebra_rtread="netlink"
470 else
471 for zebra_rtread in /proc/net/route /dev/ip /dev/null;
472 do
473 test x`ls $zebra_rtread 2>/dev/null` = x"$zebra_rtread" && break
474 done
475 case $zebra_rtread in
476 "/proc/net/route") RTREAD_METHOD="rtread_proc.o"
477 zebra_rtread="proc";;
478 "/dev/ip")
479 case "$host" in
480 *-freebsd*) RTREAD_METHOD=rtread_sysctl.o
481 zebra_rtread="sysctl";;
482 *) RTREAD_METHOD="rtread_getmsg.o"
483 zebra_rtread="getmsg";;
484 esac;;
485 *) RTREAD_METHOD="rtread_sysctl.o"
486 zebra_rtread="sysctl";;
487 esac
488 fi])
489 AC_SUBST(RTREAD_METHOD)
490
491 dnl -----------------------------
492 dnl check interface lookup method
493 dnl -----------------------------
494 IOCTL_METHOD=ioctl.o
495 AC_MSG_CHECKING(interface looking up method)
496 if test "$netlink" = yes; then
497 AC_MSG_RESULT(netlink)
498 IF_METHOD=if_netlink.o
499 elif test "$opsys" = "sol2-6";then
500 AC_MSG_RESULT(Solaris GIF)
501 IF_METHOD=if_ioctl.o
502 elif test "$opsys" = "sol9";then
503 AC_MSG_RESULT(Solaris GLIF)
504 IF_METHOD=if_ioctl_solaris.o
505 IOCTL_METHOD=ioctl_solaris.o
506 elif test "$opsys" = "irix" ; then
507 AC_MSG_RESULT(IRIX)
508 IF_METHOD=if_ioctl.o
509 elif test "$opsys" = "openbsd";then
510 AC_MSG_RESULT(openbsd)
511 IF_METHOD=if_ioctl.o
512 elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
513 AC_MSG_RESULT(sysctl)
514 IF_METHOD=if_sysctl.o
515 AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
516 else
517 AC_MSG_RESULT(ioctl)
518 IF_METHOD=if_ioctl.o
519 fi
520 AC_SUBST(IF_METHOD)
521 AC_SUBST(IOCTL_METHOD)
522
523 dnl -----------------------
524 dnl check proc file system.
525 dnl -----------------------
526 if test -r /proc/net/dev; then
527 AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
528 IF_PROC=if_proc.o
529 fi
530
531 if test -r /proc/net/if_inet6; then
532 AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
533 IF_PROC=if_proc.o
534 fi
535 AC_SUBST(IF_PROC)
536
537 dnl -----------------------------
538 dnl check ipforward detect method
539 dnl -----------------------------
540 AC_CACHE_CHECK(ipforward method check, zebra_ipforward_path,
541 [for zebra_ipforward_path in /proc/net/snmp /dev/ip /dev/null;
542 do
543 test x`ls $zebra_ipforward_path 2>/dev/null` = x"$zebra_ipforward_path" && break
544 done
545 case $zebra_ipforward_path in
546 "/proc/net/snmp") IPFORWARD=ipforward_proc.o
547 zebra_ipforward_path="proc";;
548 "/dev/ip")
549 case "$host" in
550 *-nec-sysv4*) IPFORWARD=ipforward_ews.o
551 zebra_ipforward_path="ews";;
552 *-freebsd*) IPFORWARD=ipforward_sysctl.o
553 zebra_ipforward_path="sysctl";;
554 *) IPFORWARD=ipforward_solaris.o
555 zebra_ipforward_path="solaris";;
556 esac;;
557 *) IPFORWARD=ipforward_sysctl.o
558 zebra_ipforward_path="sysctl";;
559 esac])
560 AC_SUBST(IPFORWARD)
561
562 AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
563
564 dnl ----------
565 dnl IPv6 check
566 dnl ----------
567 AC_MSG_CHECKING(whether does this OS have IPv6 stack)
568 if test "${enable_ipv6}" = "no"; then
569 AC_MSG_RESULT(disabled)
570 else
571 dnl ----------
572 dnl INRIA IPv6
573 dnl ----------
574 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
575 zebra_cv_ipv6=yes
576 AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
577 AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
578 RIPNGD="ripngd"
579 OSPF6D="ospf6d"
580 LIB_IPV6=""
581 AC_MSG_RESULT(INRIA IPv6)
582 dnl ---------
583 dnl KAME IPv6
584 dnl ---------
585 elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
586 zebra_cv_ipv6=yes
587 AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
588 AC_DEFINE(KAME,1,KAME IPv6)
589 RIPNGD="ripngd"
590 OSPF6D="ospf6d"
591 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
592 LIB_IPV6="-L/usr/local/v6/lib -linet6"
593 fi
594 AC_MSG_RESULT(KAME)
595 dnl -------------------------
596 dnl MUSICA IPv6
597 dnl default host check
598 dnl It is not used by Kheops
599 dnl -------------------------
600 elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
601 zebra_cv_ipv6=yes
602 AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
603 AC_DEFINE(MUSICA,1,Musica IPv6 stack)
604 AC_DEFINE(KAME,1,KAME IPv6 stack)
605 RIPNGD="ripngd"
606 OSPF6D="ospf6d"
607 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
608 LIB_IPV6="-L/usr/local/v6/lib -linet6"
609 fi
610 AC_MSG_RESULT(MUSICA)
611 dnl ---------
612 dnl NRL check
613 dnl ---------
614 elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
615 zebra_cv_ipv6=yes
616 AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
617 AC_DEFINE(NRL,1,NRL)
618 RIPNGD="ripngd"
619 OSPF6D="ospf6d"
620 if test x"$opsys" = x"bsdi";then
621 AC_DEFINE(BSDI_NRL,,BSDI)
622 AC_MSG_RESULT(BSDI_NRL)
623 else
624 AC_MSG_RESULT(NRL)
625 fi
626 dnl ------------------------------------
627 dnl Solaris 9, 10 and potentially higher
628 dnl ------------------------------------
629 elif test x"$opsys" = x"sol9"; then
630 zebra_cv_ipv6=yes;
631 AC_DEFINE(HAVE_IPV6, 1, IPv6)
632 AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
633 RIPNGD="ripngd"
634 OSPF6D="ospf6d"
635 AC_MSG_RESULT(Solaris IPv6)
636 dnl ----------
637 dnl Linux IPv6
638 dnl ----------
639 elif test "${enable_ipv6}" = "yes"; then
640 AC_EGREP_CPP(yes, [
641 #include <linux/version.h>
642 /* 2.1.128 or later */
643 #if LINUX_VERSION_CODE >= 0x020180
644 yes
645 #endif],
646 [zebra_cv_ipv6=yes
647 zebra_cv_linux_ipv6=yes
648 AC_MSG_RESULT(Linux IPv6)])
649 else
650 if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
651 then
652 zebra_cv_ipv6=yes
653 zebra_cv_linux_ipv6=yes
654 AC_MSG_RESULT(Linux IPv6)
655 fi
656 fi
657
658 if test "$zebra_cv_linux_ipv6" = "yes";then
659 AC_MSG_CHECKING(for GNU libc >= 2.1)
660 AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
661 AC_EGREP_CPP(yes, [
662 #include <features.h>
663 #if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
664 yes
665 #endif],
666 [glibc=yes
667 AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
668 AC_MSG_RESULT(yes)],
669 AC_MSG_RESULT(no)
670 )
671 RIPNGD="ripngd"
672 OSPF6D="ospf6d"
673 if test "$glibc" != "yes"; then
674 INCLUDES="-I/usr/inet6/include"
675 if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
676 LIB_IPV6="-L/usr/inet6/lib -linet6"
677 fi
678 fi
679 fi
680
681 dnl -----------------------
682 dnl Set IPv6 related values
683 dnl -----------------------
684 LIBS="$LIB_IPV6 $LIBS"
685 AC_SUBST(LIB_IPV6)
686
687 if test x"$RIPNGD" = x""; then
688 AC_MSG_RESULT(IPv4 only)
689 fi
690 fi
691
692 dnl ------------------
693 dnl IPv6 header checks
694 dnl ------------------
695 if test "x${zebra_cv_ipv6}" = "xyes"; then
696 AC_CHECK_HEADERS([netinet6/in6.h netinet/in6_var.h netinet/icmp6.h \
697 netinet6/in6_var.h netinet6/nd6.h])
698 fi
699
700 dnl --------------------
701 dnl Daemon disable check
702 dnl --------------------
703 if test "${enable_zebra}" = "no";then
704 ZEBRA=""
705 else
706 ZEBRA="zebra"
707 fi
708
709 if test "${enable_bgpd}" = "no";then
710 BGPD=""
711 else
712 BGPD="bgpd"
713 fi
714
715 if test "${enable_ripd}" = "no";then
716 RIPD=""
717 else
718 RIPD="ripd"
719 fi
720
721 if test "${enable_ospfd}" = "no";then
722 OSPFD=""
723 else
724 OSPFD="ospfd"
725 fi
726
727 OSPFCLIENT=""
728 if test "${enable_opaque_lsa}" = "yes"; then
729 if test "${enable_ospfapi}" != "no";then
730 AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
731
732 if test "${enable_ospfclient}" != "no";then
733 OSPFCLIENT="ospfclient"
734 fi
735 fi
736
737 fi
738
739 case "${enable_ripngd}" in
740 "yes") RIPNGD="ripngd";;
741 "no" ) RIPNGD="";;
742 * ) ;;
743 esac
744
745 case "${enable_ospf6d}" in
746 "yes") OSPF6D="ospf6d";;
747 "no" ) OSPF6D="";;
748 * ) ;;
749 esac
750
751 case "${enable_isisd}" in
752 "yes") ISISD="isisd";;
753 "no" ) ISISD="";;
754 * ) ISISD="isisd";;
755 esac
756
757 if test "${enable_bgp_announce}" = "no";then
758 AC_DEFINE(DISABLE_BGP_ANNOUNCE,,Disable BGP installation to zebra)
759 fi
760
761 AC_SUBST(ZEBRA)
762 AC_SUBST(BGPD)
763 AC_SUBST(RIPD)
764 AC_SUBST(RIPNGD)
765 AC_SUBST(OSPFD)
766 AC_SUBST(OSPF6D)
767 AC_SUBST(ISISD)
768 AC_SUBST(VTYSH)
769 AC_SUBST(INCLUDES)
770 AC_SUBST(CURSES)
771 AC_SUBST(OSPFCLIENT)
772 AC_SUBST(OSPFAPI)
773 AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
774 AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
775 AC_CHECK_LIB(crypt, crypt)
776 AC_CHECK_LIB(resolv, res_init)
777 AC_CHECK_LIB(m, main)
778
779 dnl ---------------------------------------------------
780 dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
781 dnl ---------------------------------------------------
782 AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
783 AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
784 AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
785
786 dnl ---------------------------
787 dnl check system has GNU regexp
788 dnl ---------------------------
789 dnl AC_MSG_CHECKING(whether system has GNU regex)
790 AC_CHECK_LIB(c, regexec,
791 [AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
792 LIB_REGEX=""],
793 [LIB_REGEX="regex.o"])
794 AC_SUBST(LIB_REGEX)
795
796 dnl ------------------
797 dnl check SNMP library
798 dnl ------------------
799 if test "${enable_snmp}" = "yes";then
800 dnl AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
801 if test "${HAVE_SNMP}" = ""; then
802 old_libs="${LIBS}"
803 LIBS="-L/usr/lib"
804 unset ac_cv_lib_snmp_asn_parse_int
805 AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
806 if test "${NEED_CRYPTO}" = ""; then
807 AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes ])
808 else
809 AC_CHECK_LIB(netsnmp, asn_parse_int, [HAVE_NETSNMP=yes; HAVE_SNMP=yes; NEED_CRYPTO=yes;LIBS="$LIBS -lcrypto" ],,"-lcrypto")
810 fi
811 LIBS="${old_libs}"
812 fi
813 if test "${HAVE_SNMP}" = ""; then
814 old_libs="${LIBS}"
815 LIBS="-L/usr/lib"
816 unset ac_cv_lib_snmp_asn_parse_int
817 AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes, )
818 if test "${HAVE_SNMP}" = ""; then
819 unset ac_cv_lib_snmp_asn_parse_int
820 AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
821 if test "${NEED_CRYPTO}" = "yes"; then
822 AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
823 fi
824 fi
825 LIBS="${old_libs}"
826 fi
827
828 if test "${HAVE_SNMP}" = ""; then
829 old_libs="${LIBS}"
830 LIBS="-L/usr/local/lib"
831 unset ac_cv_lib_snmp_asn_parse_int
832 AC_CHECK_LIB(snmp, asn_parse_int, HAVE_SNMP=yes)
833 if test "${HAVE_SNMP}" = ""; then
834 unset ac_cv_lib_snmp_asn_parse_int
835 AC_CHECK_LIB(crypto, main, NEED_CRYPTO=yes, )
836 if test "${NEED_CRYPTO}" = "yes"; then
837 AC_CHECK_LIB(snmp, asn_parse_int, [HAVE_SNMP=yes; NEED_CRYPTO=yes; LIBS="$LIBS -lcrypto" ],,"-lcrypto")
838 fi
839 fi
840 LIBS="${old_libs}"
841 fi
842
843 if test "${HAVE_SNMP}" = "yes"; then
844 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
845 do
846 test -f "${ac_snmp}" && break
847 done
848
849 case ${ac_snmp} in
850 /usr/include/net-snmp/*)
851 AC_DEFINE(HAVE_SNMP,,SNMP)
852 AC_DEFINE(HAVE_NETSNMP,,SNMP)
853 AC_DEFINE(UCD_COMPATIBLE,,SNMP)
854 CFLAGS="${CFLAGS} -I/usr/include/net-snmp -I/usr/include/net-snmp/library"
855 if test "${HAVE_NETSNMP}" = "yes"; then
856 LIBS="${LIBS} -lnetsnmp"
857 else
858 LIBS="${LIBS} -lsnmp"
859 fi
860 ;;
861 /usr/include/ucd-snmp/*)
862 AC_DEFINE(HAVE_SNMP,,SNMP)
863 CFLAGS="${CFLAGS} -I/usr/include/ucd-snmp"
864 LIBS="${LIBS} -lsnmp"
865 ;;
866 /usr/local/include/ucd-snmp/*)
867 AC_DEFINE(HAVE_SNMP,,SNMP)
868 CFLAGS="${CFLAGS} -I/usr/local/include/ucd-snmp"
869 LIBS="${LIBS} -L/usr/local/lib -lsnmp"
870 ;;
871 /usr/local/include/net-snmp/*)
872 AC_DEFINE(HAVE_SNMP,,SNMP)
873 AC_DEFINE(HAVE_NET_SNMP,,SNMP)
874 AC_DEFINE(UCD_COMPATIBLE,,SNMP)
875 CFLAGS="${CFLAGS} -I/usr/local/include/net-snmp"
876 LIBS="${LIBS} -L/usr/local/lib -lnetsnmp"
877 ;;
878 esac
879 if test "${NEED_CRYPTO}" = "yes"; then
880 LIBS="${LIBS} -lcrypto"
881 fi
882 fi
883 fi
884
885 dnl ----------------------------
886 dnl check sa_len of sockaddr
887 dnl ----------------------------
888 AC_MSG_CHECKING(whether struct sockaddr has a sa_len field)
889 AC_TRY_COMPILE([#include <sys/types.h>
890 #include <sys/socket.h>
891 ],[static struct sockaddr ac_i;int ac_j = sizeof (ac_i.sa_len);],
892 [AC_MSG_RESULT(yes)
893 AC_DEFINE(HAVE_SA_LEN,,sa_len)],
894 AC_MSG_RESULT(no))
895
896 dnl ----------------------------
897 dnl check sin_len of sockaddr_in
898 dnl ----------------------------
899 AC_MSG_CHECKING(whether struct sockaddr_in has a sin_len field)
900 AC_TRY_COMPILE([#include <sys/types.h>
901 #include <netinet/in.h>
902 ],[static struct sockaddr_in ac_i;int ac_j = sizeof (ac_i.sin_len);],
903 [AC_MSG_RESULT(yes)
904 AC_DEFINE(HAVE_SIN_LEN,,sin_len)],
905 AC_MSG_RESULT(no))
906
907 dnl ----------------------------
908 dnl check sun_len of sockaddr_un
909 dnl ----------------------------
910 AC_MSG_CHECKING(whether struct sockaddr_un has a sun_len field)
911 AC_TRY_COMPILE([#include <sys/types.h>
912 #include <sys/un.h>
913 ],[static struct sockaddr_un ac_i;int ac_j = sizeof (ac_i.sun_len);],
914 [AC_MSG_RESULT(yes)
915 AC_DEFINE(HAVE_SUN_LEN,,sun_len)],
916 AC_MSG_RESULT(no))
917
918 dnl -----------------------------------
919 dnl check sin6_scope_id of sockaddr_in6
920 dnl -----------------------------------
921 if test "$zebra_cv_ipv6" = yes; then
922 AC_MSG_CHECKING(whether struct sockaddr_in6 has a sin6_scope_id field)
923 AC_TRY_COMPILE([#include <sys/types.h>
924 #include <netinet/in.h>
925 ],[static struct sockaddr_in6 ac_i;int ac_j = sizeof (ac_i.sin6_scope_id);],
926 [AC_MSG_RESULT(yes)
927 AC_DEFINE(HAVE_SIN6_SCOPE_ID,,scope id)],
928 AC_MSG_RESULT(no))
929 fi
930
931 dnl ----------------------------
932 dnl check socklen_t exist or not
933 dnl ----------------------------
934 AC_MSG_CHECKING(whther socklen_t is defined)
935 AC_TRY_COMPILE([#include <sys/types.h>
936 #include <sys/socket.h>
937 #include <netinet/in.h>
938 ],[socklen_t ac_x;],
939 [AC_MSG_RESULT(yes)
940 AC_DEFINE(HAVE_SOCKLEN_T,,socklen_t)],
941 AC_MSG_RESULT(no))
942
943 dnl ------------------------
944 dnl check struct sockaddr_dl
945 dnl ------------------------
946 AC_MSG_CHECKING(whether struct sockaddr_dl exist)
947 AC_EGREP_HEADER(sockaddr_dl,
948 net/if_dl.h,
949 [AC_MSG_RESULT(yes)
950 AC_DEFINE(HAVE_SOCKADDR_DL,,sockaddr_dl)],
951 AC_MSG_RESULT(no))
952
953 dnl --------------------------
954 dnl check structure ifaliasreq
955 dnl --------------------------
956 AC_MSG_CHECKING(whether struct ifaliasreq exist)
957 AC_EGREP_HEADER(ifaliasreq,
958 net/if.h,
959 [AC_MSG_RESULT(yes)
960 AC_DEFINE(HAVE_IFALIASREQ,,ifaliasreq)],
961 AC_MSG_RESULT(no))
962
963 dnl ----------------------------
964 dnl check structure in6_aliasreq
965 dnl ----------------------------
966 AC_MSG_CHECKING(whether struct in6_aliasreq exist)
967 AC_EGREP_HEADER(in6_aliasreq,
968 netinet6/in6_var.h,
969 [AC_MSG_RESULT(yes)
970 AC_DEFINE(HAVE_IN6_ALIASREQ,,in6_aliasreq)],
971 AC_MSG_RESULT(no))
972
973 dnl -----------------------------------
974 dnl check ifra_lifetime of in6_aliasreq
975 dnl -----------------------------------
976 AC_MSG_CHECKING(whether in6_aliasreq.ifra_lifetime exist)
977 AC_TRY_COMPILE([#include <sys/types.h>
978 #include <netinet6/in6_var.h>
979 ],[static struct if6_aliasreq ac_i;int ac_j = sizeof (ac_i.ifra_lifetime);],
980 [AC_MSG_RESULT(yes)
981 AC_DEFINE(HAVE_IFRA_LIFETIME,,Have in6_aliasreq.ifra_lifetime)],
982 AC_MSG_RESULT(no))
983
984 dnl ---------------------------
985 dnl check structure rt_addrinfo
986 dnl ---------------------------
987 AC_MSG_CHECKING(whether struct rt_addrinfo exist)
988 AC_EGREP_HEADER(rt_addrinfo,
989 net/route.h,
990 [AC_MSG_RESULT(yes)
991 AC_DEFINE(HAVE_RT_ADDRINFO,,rt_addrinfo)],
992 AC_MSG_RESULT(no))
993
994 dnl --------------------------
995 dnl check structure in_pktinfo
996 dnl --------------------------
997 AC_MSG_CHECKING(whether struct in_pktinfo exist)
998 AC_TRY_COMPILE([#include <netinet/in.h>
999 ],[struct in_pktinfo ac_x;],
1000 [AC_MSG_RESULT(yes)
1001 AC_DEFINE(HAVE_INPKTINFO,,in_pktinfo)],
1002 AC_MSG_RESULT(no))
1003
1004 dnl --------------------------------------
1005 dnl checking for getrusage struct and call
1006 dnl --------------------------------------
1007 AC_MSG_CHECKING(whether getrusage is available)
1008 AC_TRY_COMPILE([#include <sys/resource.h>
1009 ],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
1010 [AC_MSG_RESULT(yes)
1011 AC_DEFINE(HAVE_RUSAGE,,rusage)],
1012 AC_MSG_RESULT(no))
1013
1014 dnl -------------------
1015 dnl capabilities checks
1016 dnl -------------------
1017 if test "${enable_capabilities}" != "no"; then
1018 AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
1019 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
1020 [AC_MSG_RESULT(yes)
1021 AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
1022 quagga_ac_keepcaps="yes"],
1023 AC_MSG_RESULT(no)
1024 )
1025 if test x"${quagga_ac_keepcaps}" = x"yes"; then
1026 AC_CHECK_HEADERS(sys/capability.h)
1027 fi
1028 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
1029 AC_CHECK_LIB(cap, cap_init,
1030 [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
1031 LIBCAP="-lcap"
1032 ]
1033 )
1034 fi
1035 fi
1036 AC_SUBST(LIBCAP)
1037
1038 dnl ---------------------------
1039 dnl check for glibc 'backtrace'
1040 dnl ---------------------------
1041 if test "${glibc}" = "yes"; then
1042 AC_CHECK_HEADER(execinfo.h)
1043 fi
1044 if test x"${ac_cv_header_execinfo_h}" = x"yes"; then
1045 AC_CHECK_FUNC(backtrace,
1046 [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,Glibc backtrace)]
1047 )
1048 fi
1049
1050 dnl ----------
1051 dnl configure date
1052 dnl ----------
1053 CONFDATE=`date '+%Y%m%d'`
1054 AC_SUBST(CONFDATE)
1055
1056 dnl ------------------------------
1057 dnl set paths for state directory
1058 dnl ------------------------------
1059 if test "${prefix}" = "NONE"; then
1060 quagga_statedir_prefix="";
1061 else
1062 quagga_statedir_prefix=${prefix}
1063 fi
1064 if test "${localstatedir}" = '${prefix}/var'; then
1065 AC_CACHE_CHECK(state directory,ac_statedir,
1066 [for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
1067 ${quagga_statedir_prefix}/var/adm dnl
1068 ${quagga_statedir_prefix}/etc dnl
1069 /var/run dnl
1070 /var/adm dnl
1071 /etc dnl
1072 /dev/null;
1073 do
1074 test -d $QUAGGA_STATE_DIR && break
1075 done
1076 quagga_statedir=$QUAGGA_STATE_DIR])
1077 else
1078 quagga_statedir=${localstatedir}
1079 AC_MSG_CHECKING(directory to use for state file)
1080 AC_MSG_RESULT(${quagga_statedir})
1081 fi
1082 if test $quagga_statedir = "/dev/null"; then
1083 AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
1084 fi
1085
1086 AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
1087 AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
1088 AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
1089 AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
1090 AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
1091 AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
1092 AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$quagga_statedir/isisd.pid",isisd PID)
1093 AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
1094 AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
1095 AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
1096 AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
1097 AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
1098 AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
1099 AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
1100 AC_DEFINE_UNQUOTED(ISIS_VTYSH_PATH, "$quagga_statedir/isisd.vty",isisd vty socket)
1101
1102 dnl ---------------------------
1103 dnl Check htonl works correctly
1104 dnl ---------------------------
1105 AC_MSG_CHECKING(for working htonl)
1106 AC_CACHE_VAL(ac_cv_htonl_works, [
1107 AC_TRY_LINK([#ifdef HAVE_SYS_TYPES_H
1108 #include <sys/types.h>
1109 #endif
1110 #ifdef HAVE_NETDB_H
1111 #include <netdb.h>
1112 #endif
1113 #ifdef HAVE_NETINET_IN_H
1114 #include <netinet/in.h>
1115 #endif],
1116 [htonl (0);],
1117 ac_cv_htonl_works=yes,
1118 ac_cv_htonl_works=no)])
1119 AC_MSG_RESULT($ac_cv_htonl_works)
1120
1121 AC_OUTPUT(Makefile lib/Makefile zebra/Makefile ripd/Makefile
1122 ripngd/Makefile bgpd/Makefile ospfd/Makefile
1123 ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile
1124 ospfclient/Makefile
1125 vtysh/extract.pl
1126 redhat/Makefile redhat/quagga.spec
1127 lib/version.h
1128 tests/Makefile
1129 ,
1130 [chmod +x vtysh/extract.pl])
1131
1132 echo "
1133 Quagga configuration
1134 --------------------
1135 quagga version : ${PACKAGE_VERSION}
1136 host operationg system : ${host_os}
1137 source code location : ${srcdir}
1138 compiler : ${CC}
1139 compiler flags : ${CFLAGS}
1140 linker flags : ${LDFLAGS} ${LIBS}
1141 state file directory : ${quagga_statedir}
1142 config file directory : `eval echo \`echo ${sysconfdir}\``
1143 example directory : `eval echo \`echo ${exampledir}\``
1144 user to run as : ${enable_user}
1145 group to run as : ${enable_group}
1146 group for vty sockets : ${enable_vty_group}
1147 config file mask : ${enable_configfile_mask}
1148 log file mask : ${enable_logfile_mask}
1149
1150 The above user and group must have read/write access to the state file
1151 directory and to the config files in the config file directory.
1152 "