blob: 816638e9b29dbee366cde404006a14cdc8ad065c [file] [log] [blame]
paul7ea487b2003-03-17 02:05:07 +00001##
paule8f29842003-08-12 13:08:31 +00002## Configure template file for Quagga.
paul7ea487b2003-03-17 02:05:07 +00003## autoconf will generate configure script.
4##
5## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
paule8f29842003-08-12 13:08:31 +00006## Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
paul7ea487b2003-03-17 02:05:07 +00007##
Paul Jakma105b8232006-05-28 08:02:41 +00008## $Id$
paule8f29842003-08-12 13:08:31 +00009AC_PREREQ(2.53)
paul7ea487b2003-03-17 02:05:07 +000010
Denis Ovsienko09983422011-09-26 18:50:06 +040011AC_INIT(Quagga, 0.99.19, [https://bugzilla.quagga.net])
paulfa1253d2003-09-24 05:09:26 +000012AC_CONFIG_SRCDIR(lib/zebra.h)
Paul Jakma62c9f502009-07-19 17:33:21 +010013AC_CONFIG_MACRO_DIR([m4])
ajsdfb9a542005-04-11 14:55:55 +000014
15dnl -----------------------------------
16dnl Get hostname and other information.
17dnl -----------------------------------
18AC_CANONICAL_BUILD()
19AC_CANONICAL_HOST()
20AC_CANONICAL_TARGET()
21
gdt81b81822004-04-07 22:48:47 +000022AM_INIT_AUTOMAKE(1.6)
paul7ea487b2003-03-17 02:05:07 +000023AM_CONFIG_HEADER(config.h)
24
Jeremy Jackson7ec57362009-01-21 22:10:40 -050025AC_CHECK_PROG([GAWK],[gawk],[gawk],[not-in-PATH])
26if test "x$GAWK" = "xnot-in-PATH" ; then
27 AC_MSG_ERROR([GNU awk is required for lib/memtype.h made by memtypes.awk.
28BSD awk complains: awk: gensub doesn't support backreferences (subst "\1") ])
29fi
paul03ecfb62005-04-16 15:38:23 +000030AC_ARG_VAR([GAWK],[GNU AWK])
31
gdtd6b72f72003-12-03 17:24:27 +000032dnl default is to match previous behavior
gdtc4f0efe2003-12-04 15:39:25 +000033exampledir=${sysconfdir}
gdtd6b72f72003-12-03 17:24:27 +000034AC_ARG_ENABLE([exampledir],
35 AC_HELP_STRING([--enable-exampledir],
36 [specify alternate directory for examples]),
37 exampledir="$enableval",)
gdtc4f0efe2003-12-04 15:39:25 +000038dnl XXX add --exampledir to autoconf standard directory list somehow
gdtd6b72f72003-12-03 17:24:27 +000039AC_SUBST(exampledir)
40
gdtcbd04082004-08-31 18:16:36 +000041dnl default is to match previous behavior
42pkgsrcrcdir=""
43pkgsrcdir=""
44AC_ARG_ENABLE([pkgsrcrcdir],
45 AC_HELP_STRING([--enable-pkgsrcrcdir],
46 [specify directory for rc.d scripts]),
47 pkgsrcrcdir="$enableval"; pkgsrcdir="pkgsrc",)
48dnl XXX add --pkgsrcrcdir to autoconf standard directory list somehow
49AC_SUBST(pkgsrcdir)
50AC_SUBST(pkgsrcrcdir)
51
paul7ea487b2003-03-17 02:05:07 +000052dnl ------------
53dnl Check CFLAGS
54dnl ------------
55AC_ARG_WITH(cflags,
56[ --with-cflags Set CFLAGS for use in compilation.])
57if test "x$with_cflags" != "x" ; then
58 CFLAGS="$with_cflags" ; cflags_specified=yes ;
59elif test -n "$CFLAGS" ; then
60 cflags_specified=yes ;
61fi
62
hasso1969e4b2005-03-27 13:07:23 +000063dnl --------------------
64dnl Check CC and friends
65dnl --------------------
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +010066AC_LANG([C])
paul7ea487b2003-03-17 02:05:07 +000067AC_PROG_CC
hasso1969e4b2005-03-27 13:07:23 +000068AC_PROG_CPP
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +010069AM_PROG_CC_C_O
hasso1969e4b2005-03-27 13:07:23 +000070AC_PROG_EGREP
Greg Troxel553bdfe2007-02-06 20:10:35 +000071
72dnl autoconf 2.59 appears not to support AC_PROG_SED
73dnl AC_PROG_SED
74AC_CHECK_PROG([SED],[sed],[sed],[/bin/false])
hasso1969e4b2005-03-27 13:07:23 +000075
76dnl ------------------------------------------------------------------
77dnl Intel compiler check. Although Intel tries really hard to make icc
78dnl look like gcc, there are some differences. It's very verbose with
79dnl -Wall and it doesn't support the individual -W options.
80dnl ------------------------------------------------------------------
paul6a4b8832005-11-26 08:28:00 +000081if test "x${GCC}" = "xyes" ; then
82 COMPILER="GCC"
83 AC_MSG_CHECKING([whether we are using the Intel compiler])
84 AC_EGREP_CPP([^__INTEL_COMPILER], [__INTEL_COMPILER],
85 [AC_MSG_RESULT([no])],
86 [COMPILER="ICC"
87 AC_MSG_RESULT([yes])]
88 )
89else
90 AC_MSG_CHECKING([whether we are using SunPro compiler])
91 AC_EGREP_CPP([^__SUNPRO_C.*0x5(7|8|9)], ["__SUNPRO_C" __SUNPRO_C],
92 [AC_MSG_RESULT([no])],
93 [COMPILER="SUNPRO"
94 AC_MSG_RESULT([yes])]
95 )
96fi
paul7ea487b2003-03-17 02:05:07 +000097
paula49c0ff2004-09-30 06:08:58 +000098dnl ---------------------------------------------
paul7ea487b2003-03-17 02:05:07 +000099dnl If CLFAGS doesn\'t exist set default value
paula49c0ff2004-09-30 06:08:58 +0000100dnl AC_PROG_CC will have set minimal default
101dnl already, eg "-O2 -g" for gcc, "-g" for others
paul27eebb32004-07-22 18:16:59 +0000102dnl (Wall is gcc specific... have to make sure
103dnl gcc is being used before setting it)
104dnl
paul6a4b8832005-11-26 08:28:00 +0000105dnl Intel icc 8.0 also sets __GNUC__,
106dnl but doesn't support all these fancy -W options.
hasso1969e4b2005-03-27 13:07:23 +0000107dnl Intel compiler warnings we ignore:
108dnl 279: controlling expression is constant.
109dnl 869: parameter "xxx" was never referenced - to avoid massive warnings
110dnl about "self", "vty", "argc" and "argv" never referenced in DEFUN
111dnl macro.
112dnl 981: operands are evaluated in unspecified order.
paul6a4b8832005-11-26 08:28:00 +0000113dnl
114dnl Sun Studio 10 / SunPro 5.7 is also supported,
115dnl so lets set some sane CFLAGS for it.
116dnl ---------------------------------------------
hasso1969e4b2005-03-27 13:07:23 +0000117
paul6a4b8832005-11-26 08:28:00 +0000118AC_MSG_CHECKING([whether to set a default CFLAGS])
119if test "x${cflags_specified}" = "x" ; then
120 case ${COMPILER} in
121 "ICC")
122 CFLAGS="-Os -g -Wall -wd 279,869,981"
123 AC_MSG_RESULT([Intel default])
124 ;;
125 "GCC")
Andrew J. Schorr5fa05092007-04-30 19:14:08 +0000126 CFLAGS="-Os -fno-omit-frame-pointer -g -std=gnu99 -Wall"
paul6a4b8832005-11-26 08:28:00 +0000127 CFLAGS="${CFLAGS} -Wsign-compare -Wpointer-arith"
128 CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
129 CFLAGS="${CFLAGS} -Wmissing-prototypes -Wmissing-declarations"
130 CFLAGS="${CFLAGS} -Wchar-subscripts -Wcast-qual"
131 # TODO: conditionally addd -Wpacked if handled
132 AC_MSG_RESULT([gcc default])
133 ;;
134 "SUNPRO")
Paul Jakma105b8232006-05-28 08:02:41 +0000135 CFLAGS="-xO4 -v -g -xspace -xcode=pic32 -xstrconst -xc99"
paul6a4b8832005-11-26 08:28:00 +0000136 AC_MSG_RESULT([SunPro default])
137 ;;
138 *)
139 AC_MSG_RESULT([unknown compiler])
140 ;;
141 esac
142else
143 AC_MSG_RESULT([CFLAGS supplied by user])
hasso1969e4b2005-03-27 13:07:23 +0000144fi
145
paul7ea487b2003-03-17 02:05:07 +0000146dnl --------------
147dnl Check programs
148dnl --------------
paul7ea487b2003-03-17 02:05:07 +0000149AC_PROG_INSTALL
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000150AC_PROG_LN_S
paul7ea487b2003-03-17 02:05:07 +0000151AC_PROG_MAKE_SET
152AC_CHECK_TOOL(AR, ar)
paul7ea487b2003-03-17 02:05:07 +0000153
Paul Jakma105b8232006-05-28 08:02:41 +0000154dnl ---------------------------
155dnl We, perhaps unfortunately,
156dnl depend on GNU Make specific
157dnl constructs.
158dnl Give the user a warning if
159dnl not GNU Make.
160dnl ---------------------------
161AC_CACHE_CHECK([if ${MAKE-make} is GNU make], [quagga_cv_gnu_make],
162 [quagga_cv_gnu_make=no
163 if ${MAKE-make} --version 2>/dev/null | \
164 grep '^GNU Make ' >/dev/null ; then
165 quagga_cv_gnu_make=yes;
166 fi
167 ]
168)
169
Paul Jakmad46d2a22007-05-10 16:53:04 +0000170dnl -----------------
171dnl System extensions
172dnl -----------------
Paul Jakmad46d2a22007-05-10 16:53:04 +0000173AC_GNU_SOURCE
paul7ea487b2003-03-17 02:05:07 +0000174
gdt87efd642004-06-30 17:36:11 +0000175dnl -------
176dnl libtool
177dnl -------
paul0fc42942004-08-19 04:41:21 +0000178AC_PROG_LIBTOOL
gdt87efd642004-06-30 17:36:11 +0000179
paul7ea487b2003-03-17 02:05:07 +0000180dnl ----------------------
181dnl Packages configuration
182dnl ----------------------
183AC_ARG_ENABLE(vtysh,
gdtfc9d0742004-06-30 14:25:12 +0000184[ --enable-vtysh include integrated vty shell for Quagga])
paul7ea487b2003-03-17 02:05:07 +0000185AC_ARG_ENABLE(ipv6,
186[ --disable-ipv6 turn off IPv6 related features and daemons])
Joakim Tjernlundcbcd9bf2009-02-16 09:40:39 +0100187AC_ARG_ENABLE(doc,
188[ --disable-doc do not build docs])
paul7ea487b2003-03-17 02:05:07 +0000189AC_ARG_ENABLE(zebra,
190[ --disable-zebra do not build zebra daemon])
191AC_ARG_ENABLE(bgpd,
192[ --disable-bgpd do not build bgpd])
193AC_ARG_ENABLE(ripd,
194[ --disable-ripd do not build ripd])
195AC_ARG_ENABLE(ripngd,
196[ --disable-ripngd do not build ripngd])
197AC_ARG_ENABLE(ospfd,
198[ --disable-ospfd do not build ospfd])
paul7ea487b2003-03-17 02:05:07 +0000199AC_ARG_ENABLE(ospf6d,
200[ --disable-ospf6d do not build ospf6d])
ajsd0199432004-12-22 14:03:52 +0000201AC_ARG_ENABLE(watchquagga,
202[ --disable-watchquagga do not build watchquagga])
jardin9e867fe2003-12-23 08:56:18 +0000203AC_ARG_ENABLE(isisd,
hassoae399ab2004-09-13 20:22:18 +0000204[ --enable-isisd build isisd])
Greg Troxel97cee872007-08-02 13:36:56 +0000205AC_ARG_ENABLE(solaris,
206[ --enable-solaris build solaris])
paul7ea487b2003-03-17 02:05:07 +0000207AC_ARG_ENABLE(bgp-announce,
208[ --disable-bgp-announce, turn off BGP route announcement])
209AC_ARG_ENABLE(netlink,
210[ --enable-netlink force to use Linux netlink interface])
211AC_ARG_ENABLE(broken-aliases,
212[ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X])
Joakim Tjernlundfb62a3c2008-05-13 20:03:32 +0200213AC_ARG_WITH(crypto,
214[ --without-crypto do not use libcrypto in SNMP])
paul7ea487b2003-03-17 02:05:07 +0000215AC_ARG_ENABLE(snmp,
216[ --enable-snmp enable SNMP support])
217AC_ARG_WITH(libpam,
218[ --with-libpam use libpam for PAM support in vtysh])
hasso71c0fb52003-05-25 20:18:13 +0000219AC_ARG_ENABLE(tcp-zebra,
paul7ea487b2003-03-17 02:05:07 +0000220[ --enable-tcp-zebra enable TCP/IP socket connection between zebra and protocol daemon])
paul7ea487b2003-03-17 02:05:07 +0000221AC_ARG_ENABLE(opaque-lsa,
Paul Jakma36de2612011-03-22 10:18:05 +0000222 AC_HELP_STRING([--disable-opaque-lsa],[do not build OSPF Opaque-LSA with OSPFAPI support (RFC2370)]))
paul1ef74ef2003-03-21 15:16:05 +0000223AC_ARG_ENABLE(ospfapi,
Paul Jakma36de2612011-03-22 10:18:05 +0000224[ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database])
paul1ef74ef2003-03-21 15:16:05 +0000225AC_ARG_ENABLE(ospfclient,
226[ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
227 (this is the default if --disable-ospfapi is set)])
paul7ea487b2003-03-17 02:05:07 +0000228AC_ARG_ENABLE(ospf-te,
Paul Jakma36de2612011-03-22 10:18:05 +0000229 AC_HELP_STRING([--disable-ospf-te],[disable Traffic Engineering Extension to OSPF]))
paul7ea487b2003-03-17 02:05:07 +0000230AC_ARG_ENABLE(multipath,
231[ --enable-multipath=ARG enable multipath function, ARG must be digit])
Paul P Komkoff Jrfe86b482008-08-13 16:56:05 +0100232AC_ARG_ENABLE(user,
233 AC_HELP_STRING([--enable-user=user], [user to run Quagga suite as (default quagga)]))
234AC_ARG_ENABLE(group,
235 AC_HELP_STRING([--enable-group=group], [group to run Quagga suite as (default quagga)]))
pauledd7c242003-06-04 13:59:38 +0000236AC_ARG_ENABLE(vty_group,
paul6b6942f2004-10-22 04:55:05 +0000237[ --enable-vty-group=ARG set vty sockets to have specified group as owner])
gdtaa593d52003-12-22 20:15:53 +0000238AC_ARG_ENABLE(configfile_mask,
239[ --enable-configfile-mask=ARG set mask for config files])
240AC_ARG_ENABLE(logfile_mask,
241[ --enable-logfile-mask=ARG set mask for log files])
pauledd7c242003-06-04 13:59:38 +0000242
hasso71c0fb52003-05-25 20:18:13 +0000243AC_ARG_ENABLE(rtadv,
paul6b6942f2004-10-22 04:55:05 +0000244[ --disable-rtadv disable IPV6 router advertisement feature])
hassoca776982004-06-12 14:33:05 +0000245AC_ARG_ENABLE(irdp,
paul6b6942f2004-10-22 04:55:05 +0000246[ --enable-irdp enable IRDP server support in zebra])
hassof695b012005-04-02 19:03:39 +0000247AC_ARG_ENABLE(isis_topology,
248[ --enable-isis-topology enable IS-IS topology generator])
hasso41d3fc92004-04-06 11:59:00 +0000249AC_ARG_ENABLE(capabilities,
250[ --disable-capabilities disable using POSIX capabilities])
paul6b6942f2004-10-22 04:55:05 +0000251AC_ARG_ENABLE(gcc_ultra_verbose,
252[ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings])
Paul Jakma3453a712009-06-12 14:21:02 +0100253AC_ARG_ENABLE(linux24_tcp_md5,
254[ --enable-linux24-tcp-md5 enable support for old, Linux-2.4 RFC2385 patch])
ajs3cade262004-12-29 17:50:22 +0000255AC_ARG_ENABLE(gcc-rdynamic,
256[ --enable-gcc-rdynamic enable gcc linking with -rdynamic for better backtraces])
ajs924b9222005-04-16 17:11:24 +0000257AC_ARG_ENABLE(time-check,
258[ --disable-time-check disable slow thread warning messages])
Jeremy Jackson25f45882009-01-12 16:06:12 -0500259AC_ARG_ENABLE(pcreposix,
260[ --enable-pcreposix enable using PCRE Posix libs for regex functions])
paul6b6942f2004-10-22 04:55:05 +0000261
262if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then
263 CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
264 CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
265 CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
266 CFLAGS="${CFLAGS} -Wpacked -Wpadded"
267fi
paul7ea487b2003-03-17 02:05:07 +0000268
ajs3cade262004-12-29 17:50:22 +0000269if test x"${enable_gcc_rdynamic}" = x"yes" ; then
270 LDFLAGS="${LDFLAGS} -rdynamic"
271fi
272
ajs924b9222005-04-16 17:11:24 +0000273if test x"${enable_time_check}" != x"no" ; then
274 if test x"${enable_time_check}" = x"yes" -o x"${enable_time_check}" = x ; then
275 AC_DEFINE(CONSUMED_TIME_CHECK,5000000,Consumed Time Check)
276 else
277 AC_DEFINE_UNQUOTED(CONSUMED_TIME_CHECK,$enable_time_check,Consumed Time Check)
278 fi
279fi
280
paul7ea487b2003-03-17 02:05:07 +0000281if test "${enable_broken_aliases}" = "yes"; then
282 if test "${enable_netlink}" = "yes"
283 then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000284 AC_MSG_FAILURE([Sorry you can not use netlink with broken aliases])
paul7ea487b2003-03-17 02:05:07 +0000285 fi
286 AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
287 enable_netlink=no
288fi
289
290if test "${enable_tcp_zebra}" = "yes"; then
291 AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
292fi
293
Paul Jakma36de2612011-03-22 10:18:05 +0000294if test "${enable_opaque_lsa}" != "no"; then
paul7ea487b2003-03-17 02:05:07 +0000295 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
296fi
297
Paul Jakma36de2612011-03-22 10:18:05 +0000298if test "${enable_ospf_te}" != "no"; then
paul7ea487b2003-03-17 02:05:07 +0000299 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
300 AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
301fi
302
Paul Jakma3453a712009-06-12 14:21:02 +0100303if test "${enable_linux24_tcp_md5}" = "yes"; then
304 AC_DEFINE(HAVE_TCP_MD5_LINUX24,,Old Linux 2.4 TCP MD5 Signature Patch)
305fi
306
gdtd2a0ccc2003-12-03 18:13:48 +0000307AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
308if test "${enable_rtadv}" != "no"; then
hasso71c0fb52003-05-25 20:18:13 +0000309 AC_MSG_RESULT(yes)
gdtd2a0ccc2003-12-03 18:13:48 +0000310 AC_DEFINE(HAVE_RTADV,,Enable IPv6 Routing Advertisement support)
paul2487bea2003-05-25 23:51:31 +0000311else
312 AC_MSG_RESULT(no)
hasso71c0fb52003-05-25 20:18:13 +0000313fi
paul7ea487b2003-03-17 02:05:07 +0000314
hassoca776982004-06-12 14:33:05 +0000315if test "${enable_irdp}" = "yes"; then
316 AC_DEFINE(HAVE_IRDP,, IRDP )
317fi
318
hassof695b012005-04-02 19:03:39 +0000319if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then
320 AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code)
321 ISIS_TOPOLOGY_INCLUDES="-I./topology"
322 ISIS_TOPOLOGY_DIR="topology"
323 ISIS_TOPOLOGY_LIB="./topology/libtopology.a"
324fi
325
326AC_SUBST(ISIS_TOPOLOGY_INCLUDES)
327AC_SUBST(ISIS_TOPOLOGY_DIR)
328AC_SUBST(ISIS_TOPOLOGY_LIB)
329
paul79cb2162003-06-06 12:19:53 +0000330if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
paule8f29842003-08-12 13:08:31 +0000331 enable_user="quagga"
pauledd7c242003-06-04 13:59:38 +0000332elif test "${enable_user}" = "no"; then
333 enable_user="root"
334fi
pauledd7c242003-06-04 13:59:38 +0000335
paul79cb2162003-06-06 12:19:53 +0000336if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
paule8f29842003-08-12 13:08:31 +0000337 enable_group="quagga"
pauledd7c242003-06-04 13:59:38 +0000338elif test "${enable_group}" = "no"; then
339 enable_group="root"
340fi
pauledd7c242003-06-04 13:59:38 +0000341
342if test x"${enable_vty_group}" = x"yes" ; then
paul8d4aee52003-06-06 00:30:35 +0000343 AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
paul79cb2162003-06-06 12:19:53 +0000344elif test x"${enable_vty_group}" != x""; then
paul8d4aee52003-06-06 00:30:35 +0000345 if test x"${enable_vty_group}" != x"no"; then
pauledd7c242003-06-04 13:59:38 +0000346 AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
347 fi
348fi
paul26275b02005-04-11 07:10:47 +0000349AC_SUBST([enable_user])
350AC_SUBST([enable_group])
351AC_SUBST([enable_vty_group])
352AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
353AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
pauledd7c242003-06-04 13:59:38 +0000354
gdtaa593d52003-12-22 20:15:53 +0000355enable_configfile_mask=${enable_configfile_mask:-0600}
356AC_DEFINE_UNQUOTED(CONFIGFILE_MASK, ${enable_configfile_mask}, Mask for config files)
357
358enable_logfile_mask=${enable_logfile_mask:-0600}
359AC_DEFINE_UNQUOTED(LOGFILE_MASK, ${enable_logfile_mask}, Mask for log files)
360
paul7ea487b2003-03-17 02:05:07 +0000361MULTIPATH_NUM=1
362
363case "${enable_multipath}" in
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000364 [[0-9]|[1-9][0-9]])
paul7ea487b2003-03-17 02:05:07 +0000365 MULTIPATH_NUM="${enable_multipath}"
366 ;;
367 "")
368 ;;
369 *)
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000370 AC_MSG_FAILURE([Please specify digit to enable multipath ARG])
paul7ea487b2003-03-17 02:05:07 +0000371 ;;
372esac
373
paul7ea487b2003-03-17 02:05:07 +0000374AC_SUBST(MULTIPATH_NUM)
375
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000376dnl ------------------------------------
377dnl Check C keywords and standard types
378dnl ------------------------------------
379AC_C_CONST
380AC_C_INLINE
381AC_C_RESTRICT
382AC_C_VOLATILE
pauldc7a2bf2003-10-22 00:07:44 +0000383AC_HEADER_STDC
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000384AC_HEADER_TIME
385AC_HEADER_SYS_WAIT
386dnl AC_TYPE_PID_T
387AC_TYPE_UID_T
388AC_TYPE_MODE_T
389AC_TYPE_SIZE_T
390AC_TYPE_SIGNAL
391AC_STRUCT_TM
pauldc7a2bf2003-10-22 00:07:44 +0000392
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000393dnl -------------------------
394dnl Check other header files.
395dnl -------------------------
396AC_CHECK_HEADERS([stropts.h sys/ksym.h sys/times.h sys/select.h \
397 sys/types.h linux/version.h netdb.h asm/types.h \
Stephen Hemmingerb69442d2011-09-13 17:15:51 +0400398 sys/param.h limits.h signal.h \
Paul Jakma6511cab2009-06-18 17:38:01 +0100399 sys/socket.h netinet/in.h time.h sys/time.h])
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000400
401dnl Utility macro to avoid retyping includes all the time
402m4_define([QUAGGA_INCLUDES],
403[#ifdef SUNOS_5
404#define _XPG4_2
405#define __EXTENSIONS__
406#endif
407#include <stdio.h>
408#if STDC_HEADERS
409# include <stdlib.h>
410# include <stddef.h>
411#else
412# if HAVE_STDLIB_H
413# include <stdlib.h>
414# endif
415#endif
416#if HAVE_SYS_TYPES_H
417# include <sys/types.h>
418#endif
419/* sys/conf.h depends on param.h on FBSD at least */
420#if HAVE_SYS_PARAM_H
421# include <sys/param.h>
422#endif
423/* Required for MAXSIG */
424#if HAVE_SIGNAL_H
425# include <signal.h>
426#endif
427#if HAVE_SYS_SOCKET_H
428# include <sys/socket.h>
429#endif
430#if HAVE_NETINET_IN_H
431# include <netinet/in.h>
432#endif
Paul Jakma6511cab2009-06-18 17:38:01 +0100433#ifdef TIME_WITH_SYS_TIME
434# include <sys/time.h>
435# include <time.h>
436#else
437# ifdef HAVE_SYS_TIME_H
438# include <sys/time.h>
439# else
440# include <time.h>
441# endif
442#endif /* TIME_WITH_SYS_TIME */
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000443])dnl
444
Denis Ovsienko2b43bf22011-07-14 16:30:08 +0400445dnl HAVE_NET_IF_H must be discovered by the time the longer AC_CHECK_HEADERS
446dnl round below execution begins, otherwise it doesn't properly detect
447dnl HAVE_NETINET6_IN6_VAR_H, HAVE_NET_IF_VAR_H and HAVE_STRUCT_IN6_ALIASREQ
448dnl on FreeBSD (BZ#408).
449
450AC_CHECK_HEADERS([net/if.h], [], [], QUAGGA_INCLUDES)
451
452m4_define([QUAGGA_INCLUDES],
453QUAGGA_INCLUDES
454[#if HAVE_NET_IF_H
455# include <net/if.h>
456#endif
457])dnl
458
459dnl Same applies for HAVE_NET_IF_VAR_H, which HAVE_NETINET6_ND6_H and
460dnl HAVE_NETINET_IN_VAR_H depend upon. But if_var.h depends on if.h, hence
461dnl an additional round for it.
462
463AC_CHECK_HEADERS([net/if_var.h], [], [], QUAGGA_INCLUDES)
464
465m4_define([QUAGGA_INCLUDES],
466QUAGGA_INCLUDES
467[#if HAVE_NET_IF_VAR_H
468# include <net/if_var.h>
469#endif
470])dnl
471
472AC_CHECK_HEADERS([sys/un.h netinet/in_systm.h netinet/in_var.h \
473 net/if_dl.h net/netopt.h net/route.h \
Paul Jakma11770e12007-06-22 16:14:42 +0000474 inet/nd.h arpa/inet.h netinet/ip_icmp.h \
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000475 fcntl.h stddef.h sys/ioctl.h syslog.h wchar.h wctype.h \
476 sys/sysctl.h sys/sockio.h kvm.h sys/conf.h],
477 [], [], QUAGGA_INCLUDES)
478
479AC_CHECK_HEADERS([ucontext.h], [], [],
480[#ifndef __USE_GNU
481#define __USE_GNU
482#endif /* __USE_GNU */
483QUAGGA_INCLUDES
484])
485
486m4_define([QUAGGA_INCLUDES],
487QUAGGA_INCLUDES
Denis Ovsienko2b43bf22011-07-14 16:30:08 +0400488[#if HAVE_SYS_UN_H
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000489# include <sys/un.h>
490#endif
491#if HAVE_NETINET_IN_SYSTM_H
492# include <netinet/in_systm.h>
493#endif
494#if HAVE_NETINET_IN_VAR_H
495# include <netinet/in_var.h>
496#endif
497#if HAVE_NET_IF_DL_H
498# include <net/if_dl.h>
499#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000500#if HAVE_NET_NETOPT_H
501# include <net/netopt.h>
502#endif
503#if HAVE_NET_ROUTE_H
504# include <net/route.h>
505#endif
506#if HAVE_INET_ND_H
507# include <inet/nd.h>
508#endif
509#if HAVE_ARPA_INET_H
510# include <arpa/inet.h>
511#endif
Paul Jakma11770e12007-06-22 16:14:42 +0000512/* Required for IDRP */
513#if HAVE_NETINET_IP_ICMP_H
514# include <netinet/ip_icmp.h>
515#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000516])dnl
pauldc7a2bf2003-10-22 00:07:44 +0000517
gdtfa3232e2003-12-03 17:52:30 +0000518dnl V6 headers are checked below, after we check for v6
paul7ea487b2003-03-17 02:05:07 +0000519
paul7ea487b2003-03-17 02:05:07 +0000520dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
521case "$host" in
paulafd8a122005-03-12 06:36:10 +0000522 [*-sunos5.[6-7]*] | [*-solaris2.[6-7]*])
paul7ea487b2003-03-17 02:05:07 +0000523 opsys=sol2-6
paulafd8a122005-03-12 06:36:10 +0000524 AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.7)
paul19877dd2004-05-11 10:49:35 +0000525 AC_DEFINE(SUNOS_5, 1, SunOS 5)
paul7ea487b2003-03-17 02:05:07 +0000526 AC_CHECK_LIB(xnet, main)
527 CURSES=-lcurses
528 ;;
paul1b73de82005-04-10 16:31:51 +0000529 [*-sunos5.[8-9]] \
530 | [*-sunos5.1[0-9]] \
531 | [*-sunos5.1[0-9].[0-9]] \
532 | [*-solaris2.[8-9]] \
533 | [*-solaris2.1[0-9]] \
534 | [*-solaris2.1[0-9].[0-9]])
paulafd8a122005-03-12 06:36:10 +0000535 opsys=sol8
Paul Jakmafb66b292006-05-28 08:26:15 +0000536 AC_DEFINE(SUNOS_59, 1, [SunOS 5.8 up])
537 AC_DEFINE(SUNOS_5, 1, [SunOS 5])
paul19877dd2004-05-11 10:49:35 +0000538 AC_CHECK_LIB(socket, main)
539 AC_CHECK_LIB(nsl, main)
paul1b73de82005-04-10 16:31:51 +0000540 AC_CHECK_LIB(umem, main)
Paul Jakmafb66b292006-05-28 08:26:15 +0000541 AC_CHECK_FUNCS([printstack],
542 [AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
543 AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
544 ])
paul19877dd2004-05-11 10:49:35 +0000545 CURSES=-lcurses
546 ;;
paul7ea487b2003-03-17 02:05:07 +0000547 *-sunos5* | *-solaris2*)
paul19877dd2004-05-11 10:49:35 +0000548 AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
paul7ea487b2003-03-17 02:05:07 +0000549 AC_CHECK_LIB(socket, main)
550 AC_CHECK_LIB(nsl, main)
551 CURSES=-lcurses
552 ;;
hassoc45eb832005-02-19 13:58:06 +0000553 *-linux*)
paul7ea487b2003-03-17 02:05:07 +0000554 opsys=gnu-linux
555 AC_DEFINE(GNU_LINUX,,GNU Linux)
556 ;;
557 *-nec-sysv4*)
558 AC_CHECK_LIB(nsl, gethostbyname)
559 AC_CHECK_LIB(socket, socket)
560 ;;
paul7ea487b2003-03-17 02:05:07 +0000561 *-openbsd*)
562 opsys=openbsd
563 AC_DEFINE(OPEN_BSD,,OpenBSD)
564 ;;
565 *-bsdi*)
566 opsys=bsdi
567 OTHER_METHOD="mtu_kvm.o"
568 AC_CHECK_LIB(kvm, main)
569 ;;
paul49e3b3c2003-10-23 20:39:50 +0000570 *-irix6.5)
pauldc7a2bf2003-10-22 00:07:44 +0000571 opsys=irix
572 AC_DEFINE(IRIX_65,,IRIX 6.5)
573 ;;
paul7ea487b2003-03-17 02:05:07 +0000574esac
575
Paul Jakma62c9f502009-07-19 17:33:21 +0100576AC_SYS_LARGEFILE
577
paul7ea487b2003-03-17 02:05:07 +0000578dnl ---------------------
579dnl Integrated VTY option
580dnl ---------------------
581case "${enable_vtysh}" in
582 "yes") VTYSH="vtysh";
583 AC_DEFINE(VTYSH,,VTY shell)
gdtfc9d0742004-06-30 14:25:12 +0000584 AC_PATH_PROG(PERL, perl)
585dnl Vtysh uses libreadline, which looks for termcap functions at
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000586dnl configure time. We follow readlines search order.
gdtfc9d0742004-06-30 14:25:12 +0000587dnl The required procedures are in libtermcap on NetBSD, in
588dnl [TODO] on Linux, and in [TODO] on Solaris.
hassoc0689392005-08-25 12:00:58 +0000589 AC_CHECK_LIB(termcap, tputs, LIBREADLINE="$LIBREADLINE -ltermcap",
paula9694592005-08-25 14:50:05 +0000590 [AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
591 [AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
592 [AC_CHECK_LIB(ncurses, tputs,
593 LIBREADLINE="$LIBREADLINE -lncurses")]
594 )]
595 )]
596 )
597 AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
598 "$LIBREADLINE")
paul7ea487b2003-03-17 02:05:07 +0000599 if test $ac_cv_lib_readline_main = no; then
gdtfc9d0742004-06-30 14:25:12 +0000600 AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
paul7ea487b2003-03-17 02:05:07 +0000601 fi
602 AC_CHECK_HEADER(readline/history.h)
603 if test $ac_cv_header_readline_history_h = no;then
604 AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
605 fi
paula9694592005-08-25 14:50:05 +0000606 AC_CHECK_LIB(readline, rl_completion_matches,
607 LIBREADLINE="$LIBREADLINE",, "$LIBREADLINE")
paul3d3de8c2003-05-23 10:33:49 +0000608 if test $ac_cv_lib_readline_rl_completion_matches = no; then
609 AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
610 fi
611 ;;
paul7ea487b2003-03-17 02:05:07 +0000612 "no" ) VTYSH="";;
613 * ) ;;
614esac
hassoc0689392005-08-25 12:00:58 +0000615AC_SUBST(LIBREADLINE)
paul7ea487b2003-03-17 02:05:07 +0000616
617dnl ----------
618dnl PAM module
619dnl ----------
620if test "$with_libpam" = "yes"; then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000621 AC_CHECK_HEADER([security/pam_misc.h],
622 [AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
623 AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
624 pam_conv_func="misc_conv"
625 ],
626 [], QUAGGA_INCLUDES)
627 AC_CHECK_HEADER([security/openpam.h],
628 [AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
629 AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
630 pam_conv_func="openpam_ttyconv"
631 ],
632 [], QUAGGA_INCLUDES)
paul24cd4352003-05-06 12:16:27 +0000633 if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
634 AC_MSG_WARN([*** pam support will not be built ***])
635 with_libpam="no"
636 fi
637fi
638
639if test "$with_libpam" = "yes"; then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000640dnl took this test from proftpds configure.in and suited to our needs
paul7ea487b2003-03-17 02:05:07 +0000641dnl -------------------------------------------------------------------------
642dnl
643dnl This next check looks funky due to a linker problem with some versions
644dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
645dnl omitted requiring libdl linking information. PAM-0.72 or better ships
646dnl with RedHat 6.2 and Debian 2.2 or better.
647AC_CHECK_LIB(pam, pam_start,
paul24cd4352003-05-06 12:16:27 +0000648 [AC_CHECK_LIB(pam, $pam_conv_func,
paul7ea487b2003-03-17 02:05:07 +0000649 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
650 LIBPAM="-lpam"],
651 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
652 LIBPAM="-lpam -lpam_misc"]
653 )
654 ],
655
656 [AC_CHECK_LIB(pam, pam_end,
paul24cd4352003-05-06 12:16:27 +0000657 [AC_CHECK_LIB(pam, $pam_conv_func,
paula159ed92003-06-04 11:01:45 +0000658 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
paul7ea487b2003-03-17 02:05:07 +0000659 LIBPAM="-lpam -ldl"],
paula159ed92003-06-04 11:01:45 +0000660 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
paul7ea487b2003-03-17 02:05:07 +0000661 LIBPAM="-lpam -ldl -lpam_misc"]
662 )
663 ],AC_MSG_WARN([*** pam support will not be built ***]),
664 [-ldl])
665 ]
666)
667fi
668AC_SUBST(LIBPAM)
669
670dnl -------------------------------
671dnl Endian-ness check
672dnl -------------------------------
673AC_WORDS_BIGENDIAN
674
675dnl -------------------------------
676dnl check the size in byte of the C
677dnl -------------------------------
678dnl AC_CHECK_SIZEOF(char)
679dnl AC_CHECK_SIZEOF(int)
680dnl AC_CHECK_SIZEOF(short)
681dnl AC_CHECK_SIZEOF(long)
682
683dnl ----------------------------
684dnl check existance of functions
685dnl ----------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000686AC_FUNC_CHOWN
687AC_FUNC_FNMATCH
688AC_FUNC_FORK
689AC_FUNC_MALLOC
690AC_FUNC_MEMCMP
691AC_FUNC_MKTIME
692AC_FUNC_STRFTIME
693AC_FUNC_REALLOC
694AC_FUNC_STAT
695AC_FUNC_SELECT_ARGTYPES
696AC_FUNC_STRFTIME
Paul Jakmad46d2a22007-05-10 16:53:04 +0000697dnl Avoid AC_FUNC_STRNLEN because it pulls in AC_SYSTEM_EXTENSIONS which
698dnl can lead to strange side effects. So we just check for strnlen
699dnl directly, see below.
Paul Jakma2b5cb412007-05-10 17:05:16 +0000700dnl AC_FUNC_STRNLENdnl
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000701AC_FUNC_VPRINTF
702
703dnl -------------------------------
704dnl bgpd needs pow() and hence libm
705dnl -------------------------------
706TMPLIBS="$LIBS"
707AC_CHECK_HEADER([math.h],
708 [AC_CHECK_LIB([m], [pow],
709 [LIBM="-lm"
710 LIBS="$LIBS $LIBM"
711 AC_DEFINE(HAVE_LIBM,, Have libm)
712 AC_CHECK_FUNCS(pow,[],[LIBM=""])
713 ])
714])
715if test x"$LIBM" = x ; then
716 AC_MSG_WARN([Unable to find working pow function - bgpd may not link])
717fi
718LIBS="$TMPLIBS"
719AC_SUBST(LIBM)
720
721dnl ---------------
722dnl other functions
723dnl ---------------
724AC_CHECK_FUNCS([dup2 ftruncate getcwd gethostbyname getpagesize gettimeofday \
Paul Jakmad46d2a22007-05-10 16:53:04 +0000725 inet_ntoa inet_aton strnlen \
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000726 memchr memmove memset select socket \
727 strcasecmp strchr strcspn strdup strerror \
728 strncasecmp strndup strrchr strspn strstr \
729 strtol strtoul strlcat strlcpy \
730 daemon snprintf vsnprintf \
731 if_nametoindex if_indextoname getifaddrs \
732 uname fcntl])
733
paula159ed92003-06-04 11:01:45 +0000734AC_CHECK_FUNCS(setproctitle, ,
735 [AC_CHECK_LIB(util, setproctitle,
736 [LIBS="$LIBS -lutil"
737 AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
738 ]
739 )
740 ]
741)
paul7ea487b2003-03-17 02:05:07 +0000742
743dnl ------------------------------------
744dnl Determine routing get and set method
745dnl ------------------------------------
746AC_MSG_CHECKING(zebra between kernel interface method)
747if test x"$opsys" = x"gnu-linux"; then
748 if test "${enable_netlink}" = "yes";then
749 AC_MSG_RESULT(netlink)
750 RT_METHOD=rt_netlink.o
751 AC_DEFINE(HAVE_NETLINK,,netlink)
752 netlink=yes
753 elif test "${enable_netlink}" = "no"; then
754 AC_MSG_RESULT(ioctl)
755 RT_METHOD=rt_ioctl.o
756 netlink=no
757 else
758 AC_MSG_RESULT(netlink)
759 RT_METHOD=rt_netlink.o
760 AC_DEFINE(HAVE_NETLINK,,netlink)
761 netlink=yes
762 fi
paul19877dd2004-05-11 10:49:35 +0000763elif test x"$opsys" = x"sol2-6";then
764 AC_MSG_RESULT(Route socket)
765 KERNEL_METHOD="kernel_socket.o"
766 RT_METHOD="rt_socket.o"
paulafd8a122005-03-12 06:36:10 +0000767elif test x"$opsys" = x"sol8";then
paul19877dd2004-05-11 10:49:35 +0000768 AC_MSG_RESULT(Route socket)
769 KERNEL_METHOD="kernel_socket.o"
770 RT_METHOD="rt_socket.o"
771elif test "$opsys" = "irix" ; then
772 AC_MSG_RESULT(Route socket)
773 KERNEL_METHOD="kernel_socket.o"
774 RT_METHOD="rt_socket.o"
paul7ea487b2003-03-17 02:05:07 +0000775else
paul19877dd2004-05-11 10:49:35 +0000776 AC_TRY_RUN([#include <errno.h>
paul7ea487b2003-03-17 02:05:07 +0000777#include <sys/types.h>
778#include <sys/socket.h>
779
780main ()
781{
782 int ac_sock;
783
784 ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
785 if (ac_sock < 0 && errno == EINVAL)
786 exit (1);
787 exit (0);
788}],
789 [KERNEL_METHOD=kernel_socket.o
790 RT_METHOD=rt_socket.o
791 AC_MSG_RESULT(socket)],
792 [RT_METHOD=rt_ioctl.o
793 AC_MSG_RESULT(ioctl)],
794 [KERNEL_METHOD=kernel_socket.o
795 RT_METHOD=rt_socket.o
796 AC_MSG_RESULT(socket)])
paul7ea487b2003-03-17 02:05:07 +0000797fi
798AC_SUBST(RT_METHOD)
799AC_SUBST(KERNEL_METHOD)
800AC_SUBST(OTHER_METHOD)
801
Paul Jakma238497f2007-08-07 18:49:18 +0000802dnl --------------------------
803dnl Determine IS-IS I/O method
804dnl --------------------------
David Lamparter745bf052010-02-02 21:49:35 +0100805AC_DEFINE(ISIS_METHOD_PFPACKET, 1, [ constant value for isis method pfpacket ])
806AC_DEFINE(ISIS_METHOD_DLPI, 2, [ constant value for isis method dlpi ])
807AC_DEFINE(ISIS_METHOD_BPF, 3, [ constant value for isis method bpf ])
Paul Jakma238497f2007-08-07 18:49:18 +0000808AC_CHECK_HEADER(net/bpf.h)
809AC_CHECK_HEADER(sys/dlpi.h)
810AC_MSG_CHECKING(zebra IS-IS I/O method)
811if test x"$opsys" = x"gnu-linux"; then
812 AC_MSG_RESULT(pfpacket)
David Lamparter745bf052010-02-02 21:49:35 +0100813 ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
Paul Jakma238497f2007-08-07 18:49:18 +0000814elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
815 AC_MSG_RESULT(DLPI)
David Lamparter745bf052010-02-02 21:49:35 +0100816 ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
Paul Jakma238497f2007-08-07 18:49:18 +0000817else
818 if test $ac_cv_header_net_bpf_h = no; then
819 if test $ac_cv_header_sys_dlpi_h = no; then
820 AC_MSG_RESULT(none)
821 AC_MSG_WARN([*** IS-IS support will not be built ***])
822 ISISD=""
823 else
824 AC_MSG_RESULT(DLPI)
825 fi
David Lamparter745bf052010-02-02 21:49:35 +0100826 ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
Paul Jakma238497f2007-08-07 18:49:18 +0000827 else
828 AC_MSG_RESULT(BPF)
David Lamparter745bf052010-02-02 21:49:35 +0100829 ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
Paul Jakma238497f2007-08-07 18:49:18 +0000830 fi
831fi
David Lamparter745bf052010-02-02 21:49:35 +0100832AC_DEFINE_UNQUOTED(ISIS_METHOD, $ISIS_METHOD_MACRO, [ selected method for isis, == one of the constants ])
Paul Jakma238497f2007-08-07 18:49:18 +0000833
ajsb99760a2005-01-04 16:24:43 +0000834dnl ------------------------------------
835dnl check for broken CMSG_FIRSTHDR macro
836dnl ------------------------------------
gdt6c200462005-01-04 17:02:48 +0000837AC_MSG_CHECKING(for broken CMSG_FIRSTHDR)
hasso5b087522005-04-03 23:46:37 +0000838AC_RUN_IFELSE([AC_LANG_SOURCE([[
ajsb99760a2005-01-04 16:24:43 +0000839#ifdef SUNOS_5
840#define _XPG4_2
841#define __EXTENSIONS__
842#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000843#ifdef HAVE_STDLIB_H
844# include <stdlib.h>
845#endif
846#ifdef HAVE_SYS_TYPES_H
ajsb99760a2005-01-04 16:24:43 +0000847#include <sys/types.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000848#endif
849#ifdef HAVE_SYS_SOCKET_H
ajsb99760a2005-01-04 16:24:43 +0000850#include <sys/socket.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000851#endif
ajsb99760a2005-01-04 16:24:43 +0000852
853main()
854{
855 struct msghdr msg;
856 char buf[4];
857
858 msg.msg_control = buf;
859 msg.msg_controllen = 0;
860
861 if (CMSG_FIRSTHDR(&msg) != NULL)
862 exit(0);
863 exit (1);
hasso5b087522005-04-03 23:46:37 +0000864}]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
hassod33e8d72005-04-03 13:07:21 +0000865[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
ajsb99760a2005-01-04 16:24:43 +0000866
paul7ea487b2003-03-17 02:05:07 +0000867dnl ------------------------------
868dnl check kernel route read method
869dnl ------------------------------
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500870AC_CACHE_CHECK([route read method], [quagga_cv_rtread_method],
871[if test "x$netlink" = xyes; then
872 quagga_cv_rtread_method="netlink"
paul7ea487b2003-03-17 02:05:07 +0000873else
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500874for quagga_cv_rtread_method in /proc/net/route /dev/ip /dev/null;
paul7ea487b2003-03-17 02:05:07 +0000875do
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500876 test x`ls $quagga_cv_rtread_method 2>/dev/null` = x"$quagga_cv_rtread_method" && break
paul7ea487b2003-03-17 02:05:07 +0000877done
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500878case $quagga_cv_rtread_method in
879 "/proc/net/route") quagga_cv_rtread_method="proc";;
paul9c30ab62003-07-08 08:36:17 +0000880 "/dev/ip")
881 case "$host" in
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500882 *-freebsd*) quagga_cv_rtread_method="sysctl";;
883 *) quagga_cv_rtread_method="getmsg";;
paul9c30ab62003-07-08 08:36:17 +0000884 esac;;
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500885 *)
886 quagga_cv_rtread_method="sysctl";;
paul7ea487b2003-03-17 02:05:07 +0000887esac
888fi])
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500889RTREAD_METHOD=rtread_${quagga_cv_rtread_method}.o
paul7ea487b2003-03-17 02:05:07 +0000890AC_SUBST(RTREAD_METHOD)
891
892dnl -----------------------------
893dnl check interface lookup method
894dnl -----------------------------
paul19877dd2004-05-11 10:49:35 +0000895IOCTL_METHOD=ioctl.o
paul7ea487b2003-03-17 02:05:07 +0000896AC_MSG_CHECKING(interface looking up method)
897if test "$netlink" = yes; then
898 AC_MSG_RESULT(netlink)
899 IF_METHOD=if_netlink.o
paul19877dd2004-05-11 10:49:35 +0000900elif test "$opsys" = "sol2-6";then
901 AC_MSG_RESULT(Solaris GIF)
902 IF_METHOD=if_ioctl.o
paulafd8a122005-03-12 06:36:10 +0000903elif test "$opsys" = "sol8";then
paul19877dd2004-05-11 10:49:35 +0000904 AC_MSG_RESULT(Solaris GLIF)
905 IF_METHOD=if_ioctl_solaris.o
906 IOCTL_METHOD=ioctl_solaris.o
907elif test "$opsys" = "irix" ; then
908 AC_MSG_RESULT(IRIX)
909 IF_METHOD=if_ioctl.o
910elif test "$opsys" = "openbsd";then
911 AC_MSG_RESULT(openbsd)
912 IF_METHOD=if_ioctl.o
913elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
914 AC_MSG_RESULT(sysctl)
paul7ea487b2003-03-17 02:05:07 +0000915 IF_METHOD=if_sysctl.o
916 AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
paul19877dd2004-05-11 10:49:35 +0000917else
paul7ea487b2003-03-17 02:05:07 +0000918 AC_MSG_RESULT(ioctl)
919 IF_METHOD=if_ioctl.o
paul7ea487b2003-03-17 02:05:07 +0000920fi
921AC_SUBST(IF_METHOD)
paul19877dd2004-05-11 10:49:35 +0000922AC_SUBST(IOCTL_METHOD)
paul7ea487b2003-03-17 02:05:07 +0000923
paul42c98192005-05-07 02:22:51 +0000924dnl ---------------------------------------------------------------
925dnl figure out how to specify an interface in multicast sockets API
926dnl ---------------------------------------------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000927AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [], [], QUAGGA_INCLUDES)
paul42c98192005-05-07 02:22:51 +0000928
929AC_MSG_CHECKING([for BSD struct ip_mreq hack])
930AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H
931#include <sys/param.h>
Denis Ovsienkoc5408352009-04-13 20:11:44 +0400932#endif],[#if (defined(__FreeBSD__) && ((__FreeBSD_version >= 500022 && __FreeBSD_version < 700000) || (__FreeBSD_version < 500000 && __FreeBSD_version >= 440000))) || (defined(__NetBSD__) && defined(__NetBSD_Version__) && __NetBSD_Version__ >= 106010000)
paul42c98192005-05-07 02:22:51 +0000933 return (0);
934#else
935 #error No support for BSD struct ip_mreq hack detected
936#endif],[AC_MSG_RESULT(yes)
937AC_DEFINE(HAVE_BSD_STRUCT_IP_MREQ_HACK,,[Can pass ifindex in struct ip_mreq])],
938AC_MSG_RESULT(no))
939
Andrew J. Schorrc543a172008-01-10 15:24:32 +0000940dnl ---------------------------------------------------------------
941dnl figure out how to check link-state
942dnl ---------------------------------------------------------------
Andrew J. Schorr6418bed2008-01-11 16:33:59 +0000943AC_CHECK_HEADER([net/if.h],
944 [AC_CHECK_HEADER( [net/if_media.h],
945 [m4_define([LINK_DETECT_INCLUDES],
946 QUAGGA_INCLUDES
947 [#include <net/if_media.h>
948 ])
949 AC_CHECK_MEMBERS( [struct ifmediareq.ifm_status],
950 AC_DEFINE(HAVE_BSD_LINK_DETECT,,[BSD link-detect]),
951 [], LINK_DETECT_INCLUDES)],
952 [],
953 QUAGGA_INCLUDES)],
954 [], QUAGGA_INCLUDES )
Andrew J. Schorrc543a172008-01-10 15:24:32 +0000955
Paul Jakma0df7c912008-07-21 21:02:49 +0000956dnl ------------------------
957dnl TCP_MD5SIG socket option
958dnl ------------------------
959
960AC_CHECK_HEADER([netinet/tcp.h],
961 [m4_define([MD5_INCLUDES],
962 QUAGGA_INCLUDES
963 [#include <netinet/tcp.h>
964 ])
965 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)],
966 [],
967 QUAGGA_INCLUDES)
968if test $ac_cv_have_decl_TCP_MD5SIG = no; then
969 AC_CHECK_HEADER([linux/tcp.h],
970 [m4_define([MD5_INCLUDES],
971 QUAGGA_INCLUDES
972 [#include <linux/tcp.h>
973 ])
974 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)])
975fi
976
paul7ea487b2003-03-17 02:05:07 +0000977dnl -----------------------
978dnl check proc file system.
979dnl -----------------------
Stephen Hemmingercadfb2c2008-08-16 18:03:44 +0100980if test "$netlink" != yes; then
981 if test -r /proc/net/dev; then
982 AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
983 IF_PROC=if_proc.o
984 fi
985 if test -r /proc/net/if_inet6; then
986 AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
987 IF_PROC=if_proc.o
988 fi
paul7ea487b2003-03-17 02:05:07 +0000989fi
990AC_SUBST(IF_PROC)
991
992dnl -----------------------------
993dnl check ipforward detect method
994dnl -----------------------------
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500995AC_CACHE_CHECK([ipforward method], [quagga_cv_ipforward_method],
996[for quagga_cv_ipforward_method in /proc/net/snmp /dev/ip /dev/null;
paul7ea487b2003-03-17 02:05:07 +0000997do
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500998 test x`ls $quagga_cv_ipforward_method 2>/dev/null` = x"$quagga_cv_ipforward_method" && break
paul7ea487b2003-03-17 02:05:07 +0000999done
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001000case $quagga_cv_ipforward_method in
1001 "/proc/net/snmp") quagga_cv_ipforward_method="proc";;
paul7ea487b2003-03-17 02:05:07 +00001002 "/dev/ip")
1003 case "$host" in
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001004 *-nec-sysv4*) quagga_cv_ipforward_method="ews";;
1005 *-freebsd*) quagga_cv_ipforward_method="sysctl";;
1006 *) quagga_cv_ipforward_method="solaris";;
paul7ea487b2003-03-17 02:05:07 +00001007 esac;;
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001008 *) quagga_cv_ipforward_method="sysctl";;
paul7ea487b2003-03-17 02:05:07 +00001009esac])
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001010IPFORWARD=ipforward_${quagga_cv_ipforward_method}.o
paul7ea487b2003-03-17 02:05:07 +00001011AC_SUBST(IPFORWARD)
1012
1013AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
1014
1015dnl ----------
1016dnl IPv6 check
1017dnl ----------
1018AC_MSG_CHECKING(whether does this OS have IPv6 stack)
1019if test "${enable_ipv6}" = "no"; then
1020 AC_MSG_RESULT(disabled)
1021else
1022dnl ----------
1023dnl INRIA IPv6
1024dnl ----------
paula159ed92003-06-04 11:01:45 +00001025 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
1026 zebra_cv_ipv6=yes
1027 AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
1028 AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
1029 RIPNGD="ripngd"
1030 OSPF6D="ospf6d"
1031 LIB_IPV6=""
1032 AC_MSG_RESULT(INRIA IPv6)
paul7ea487b2003-03-17 02:05:07 +00001033dnl ---------
1034dnl KAME IPv6
1035dnl ---------
paula159ed92003-06-04 11:01:45 +00001036 elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
1037 zebra_cv_ipv6=yes
1038 AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
1039 AC_DEFINE(KAME,1,KAME IPv6)
1040 RIPNGD="ripngd"
1041 OSPF6D="ospf6d"
1042 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
paul7ea487b2003-03-17 02:05:07 +00001043 LIB_IPV6="-L/usr/local/v6/lib -linet6"
paula159ed92003-06-04 11:01:45 +00001044 fi
1045 AC_MSG_RESULT(KAME)
hasso71c0fb52003-05-25 20:18:13 +00001046dnl -------------------------
1047dnl MUSICA IPv6
1048dnl default host check
1049dnl It is not used by Kheops
1050dnl -------------------------
paula159ed92003-06-04 11:01:45 +00001051 elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
1052 zebra_cv_ipv6=yes
1053 AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
1054 AC_DEFINE(MUSICA,1,Musica IPv6 stack)
1055 AC_DEFINE(KAME,1,KAME IPv6 stack)
1056 RIPNGD="ripngd"
1057 OSPF6D="ospf6d"
1058 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
hasso71c0fb52003-05-25 20:18:13 +00001059 LIB_IPV6="-L/usr/local/v6/lib -linet6"
paula159ed92003-06-04 11:01:45 +00001060 fi
1061 AC_MSG_RESULT(MUSICA)
paul7ea487b2003-03-17 02:05:07 +00001062dnl ---------
1063dnl NRL check
1064dnl ---------
paula159ed92003-06-04 11:01:45 +00001065 elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
1066 zebra_cv_ipv6=yes
1067 AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
1068 AC_DEFINE(NRL,1,NRL)
1069 RIPNGD="ripngd"
1070 OSPF6D="ospf6d"
1071 if test x"$opsys" = x"bsdi";then
paul7ea487b2003-03-17 02:05:07 +00001072 AC_DEFINE(BSDI_NRL,,BSDI)
1073 AC_MSG_RESULT(BSDI_NRL)
paula159ed92003-06-04 11:01:45 +00001074 else
paul7ea487b2003-03-17 02:05:07 +00001075 AC_MSG_RESULT(NRL)
paula159ed92003-06-04 11:01:45 +00001076 fi
paul19877dd2004-05-11 10:49:35 +00001077dnl ------------------------------------
1078dnl Solaris 9, 10 and potentially higher
1079dnl ------------------------------------
paulafd8a122005-03-12 06:36:10 +00001080 elif test x"$opsys" = x"sol8"; then
paul19877dd2004-05-11 10:49:35 +00001081 zebra_cv_ipv6=yes;
1082 AC_DEFINE(HAVE_IPV6, 1, IPv6)
1083 AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
1084 RIPNGD="ripngd"
1085 OSPF6D="ospf6d"
1086 AC_MSG_RESULT(Solaris IPv6)
paul7ea487b2003-03-17 02:05:07 +00001087dnl ----------
1088dnl Linux IPv6
1089dnl ----------
paula159ed92003-06-04 11:01:45 +00001090 elif test "${enable_ipv6}" = "yes"; then
1091 AC_EGREP_CPP(yes, [
1092 #include <linux/version.h>
1093 /* 2.1.128 or later */
1094 #if LINUX_VERSION_CODE >= 0x020180
1095 yes
1096 #endif],
1097 [zebra_cv_ipv6=yes
1098 zebra_cv_linux_ipv6=yes
1099 AC_MSG_RESULT(Linux IPv6)])
1100 else
1101 if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
1102 then
paul7ea487b2003-03-17 02:05:07 +00001103 zebra_cv_ipv6=yes
1104 zebra_cv_linux_ipv6=yes
1105 AC_MSG_RESULT(Linux IPv6)
paula159ed92003-06-04 11:01:45 +00001106 fi
1107 fi
paul7ea487b2003-03-17 02:05:07 +00001108
paula159ed92003-06-04 11:01:45 +00001109 if test "$zebra_cv_linux_ipv6" = "yes";then
hasso850d39f2005-06-30 13:52:20 +00001110 AC_MSG_CHECKING(whether libc has IPv6 support)
1111 AC_TRY_LINK([#include <netinet/in.h>
1112 ],[ int a; a = (int) in6addr_any.s6_addr[0]; if (a != 12345) return a; ],
1113 [AC_MSG_RESULT(yes)
1114 zebra_cv_ipv6=yes
1115 zebra_cv_linux_ipv6=yes],
1116 [AC_MSG_RESULT(no)
1117 zebra_cv_ipv6=no
1118 zebra_cv_linux_ipv6=no])
1119 fi
1120
1121 if test "$zebra_cv_linux_ipv6" = "yes";then
paula159ed92003-06-04 11:01:45 +00001122 AC_MSG_CHECKING(for GNU libc >= 2.1)
1123 AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
1124 AC_EGREP_CPP(yes, [
paul7ea487b2003-03-17 02:05:07 +00001125#include <features.h>
1126#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
1127 yes
paula159ed92003-06-04 11:01:45 +00001128#endif],
1129 [glibc=yes
1130 AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
1131 AC_MSG_RESULT(yes)],
1132 AC_MSG_RESULT(no)
1133 )
1134 RIPNGD="ripngd"
1135 OSPF6D="ospf6d"
1136 if test "$glibc" != "yes"; then
paul7ea487b2003-03-17 02:05:07 +00001137 INCLUDES="-I/usr/inet6/include"
1138 if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
1139 LIB_IPV6="-L/usr/inet6/lib -linet6"
1140 fi
paula159ed92003-06-04 11:01:45 +00001141 fi
1142 fi
paul7ea487b2003-03-17 02:05:07 +00001143
1144dnl -----------------------
1145dnl Set IPv6 related values
1146dnl -----------------------
paula159ed92003-06-04 11:01:45 +00001147 LIBS="$LIB_IPV6 $LIBS"
1148 AC_SUBST(LIB_IPV6)
paul7ea487b2003-03-17 02:05:07 +00001149
paula159ed92003-06-04 11:01:45 +00001150 if test x"$RIPNGD" = x""; then
1151 AC_MSG_RESULT(IPv4 only)
1152 fi
paul7ea487b2003-03-17 02:05:07 +00001153fi
1154
gdtfa3232e2003-12-03 17:52:30 +00001155dnl ------------------
1156dnl IPv6 header checks
1157dnl ------------------
1158if test "x${zebra_cv_ipv6}" = "xyes"; then
1159AC_CHECK_HEADERS([netinet6/in6.h netinet/in6_var.h netinet/icmp6.h \
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001160 netinet6/in6_var.h netinet6/nd6.h], [], [],
1161 QUAGGA_INCLUDES)
gdtfa3232e2003-12-03 17:52:30 +00001162fi
1163
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001164m4_define([QUAGGA_INCLUDES],dnl
1165QUAGGA_INCLUDES
1166[#if HAVE_NETINET6_IN6_H
1167#include <netinet6/in6.h>
1168#endif
1169#if HAVE_NETINET_IN6_VAR_H
1170#include <netinet/in6_var.h>
1171#endif
1172#if HAVE_NETINET_ICMP6_H
1173# include <netinet/icmp6.h>
1174#endif
1175#if HAVE_NETINET6_IN6_VAR_H
1176# include <netinet6/in6_var.h>
1177#endif
1178#if HAVE_NETINET6_ND6_H
Hasso Tepperfbf24542007-06-25 19:30:59 +00001179# include <netinet6/nd6.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001180#endif
1181])dnl
1182
Joakim Tjernlundcbcd9bf2009-02-16 09:40:39 +01001183dnl disable doc check
1184if test "${enable_doc}" = "no";then
1185 DOC=""
1186else
1187 DOC="doc"
1188fi
1189
paul7ea487b2003-03-17 02:05:07 +00001190dnl --------------------
1191dnl Daemon disable check
1192dnl --------------------
1193if test "${enable_zebra}" = "no";then
1194 ZEBRA=""
1195else
1196 ZEBRA="zebra"
1197fi
1198
1199if test "${enable_bgpd}" = "no";then
1200 BGPD=""
1201else
1202 BGPD="bgpd"
1203fi
1204
1205if test "${enable_ripd}" = "no";then
1206 RIPD=""
1207else
1208 RIPD="ripd"
1209fi
1210
1211if test "${enable_ospfd}" = "no";then
1212 OSPFD=""
1213else
1214 OSPFD="ospfd"
1215fi
1216
ajsd0199432004-12-22 14:03:52 +00001217if test "${enable_watchquagga}" = "no";then
1218 WATCHQUAGGA=""
1219else
1220 WATCHQUAGGA="watchquagga"
1221fi
1222
paul1ef74ef2003-03-21 15:16:05 +00001223OSPFCLIENT=""
Greg Troxel0d51c7e2011-03-24 10:19:43 -04001224if test "${enable_opaque_lsa}" != "no"; then
paul1ef74ef2003-03-21 15:16:05 +00001225 if test "${enable_ospfapi}" != "no";then
paul9a569842003-03-28 01:45:13 +00001226 AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
paul1ef74ef2003-03-21 15:16:05 +00001227
1228 if test "${enable_ospfclient}" != "no";then
1229 OSPFCLIENT="ospfclient"
1230 fi
1231 fi
1232
paul7ea487b2003-03-17 02:05:07 +00001233fi
1234
1235case "${enable_ripngd}" in
1236 "yes") RIPNGD="ripngd";;
1237 "no" ) RIPNGD="";;
1238 * ) ;;
1239esac
1240
1241case "${enable_ospf6d}" in
1242 "yes") OSPF6D="ospf6d";;
1243 "no" ) OSPF6D="";;
1244 * ) ;;
1245esac
1246
jardin9e867fe2003-12-23 08:56:18 +00001247case "${enable_isisd}" in
1248 "yes") ISISD="isisd";;
1249 "no" ) ISISD="";;
hassoae399ab2004-09-13 20:22:18 +00001250 * ) ;;
jardin9e867fe2003-12-23 08:56:18 +00001251esac
1252
Greg Troxel97cee872007-08-02 13:36:56 +00001253# XXX Perhaps auto-enable on Solaris, but that's messy for cross builds.
1254case "${enable_solaris}" in
1255 "yes") SOLARIS="solaris";;
1256 "no" ) SOLARIS="";;
1257 * ) ;;
1258esac
1259
paul7ea487b2003-03-17 02:05:07 +00001260if test "${enable_bgp_announce}" = "no";then
Paul Jakma750e8142008-07-22 21:11:48 +00001261 AC_DEFINE(DISABLE_BGP_ANNOUNCE,1,Disable BGP installation to zebra)
1262else
1263 AC_DEFINE(DISABLE_BGP_ANNOUNCE,0,Disable BGP installation to zebra)
paul7ea487b2003-03-17 02:05:07 +00001264fi
1265
Joakim Tjernlundcbcd9bf2009-02-16 09:40:39 +01001266AC_SUBST(DOC)
paul7ea487b2003-03-17 02:05:07 +00001267AC_SUBST(ZEBRA)
1268AC_SUBST(BGPD)
1269AC_SUBST(RIPD)
1270AC_SUBST(RIPNGD)
1271AC_SUBST(OSPFD)
1272AC_SUBST(OSPF6D)
ajsd0199432004-12-22 14:03:52 +00001273AC_SUBST(WATCHQUAGGA)
jardin9e867fe2003-12-23 08:56:18 +00001274AC_SUBST(ISISD)
Greg Troxel97cee872007-08-02 13:36:56 +00001275AC_SUBST(SOLARIS)
paul7ea487b2003-03-17 02:05:07 +00001276AC_SUBST(VTYSH)
1277AC_SUBST(INCLUDES)
1278AC_SUBST(CURSES)
1279AC_SUBST(OSPFCLIENT)
paul1ef74ef2003-03-21 15:16:05 +00001280AC_SUBST(OSPFAPI)
paul7ea487b2003-03-17 02:05:07 +00001281AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
1282AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
1283AC_CHECK_LIB(crypt, crypt)
1284AC_CHECK_LIB(resolv, res_init)
paul7ea487b2003-03-17 02:05:07 +00001285
1286dnl ---------------------------------------------------
1287dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
1288dnl ---------------------------------------------------
paula159ed92003-06-04 11:01:45 +00001289AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
1290AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
1291AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
paul7ea487b2003-03-17 02:05:07 +00001292
1293dnl ---------------------------
Jeremy Jackson25f45882009-01-12 16:06:12 -05001294dnl check system has PCRE regexp
1295dnl ---------------------------
1296if test "x$enable_pcreposix" = "xyes"; then
1297 AC_CHECK_LIB(pcreposix, pcreposix_regexec, ,[enable_pcreposix=no
1298 AC_MSG_WARN([*** falling back to other regex library ***]) ])
1299fi
1300
1301if test "x$enable_pcreposix" != "xyes"; then
1302dnl ---------------------------
paul7ea487b2003-03-17 02:05:07 +00001303dnl check system has GNU regexp
1304dnl ---------------------------
Jeremy Jackson25f45882009-01-12 16:06:12 -05001305AC_MSG_CHECKING(whether system has GNU regex)
paul7ea487b2003-03-17 02:05:07 +00001306AC_CHECK_LIB(c, regexec,
1307[AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
1308 LIB_REGEX=""],
1309[LIB_REGEX="regex.o"])
Jeremy Jackson25f45882009-01-12 16:06:12 -05001310fi
1311AC_SUBST(HAVE_LIBPCREPOSIX)
paul7ea487b2003-03-17 02:05:07 +00001312AC_SUBST(LIB_REGEX)
1313
1314dnl ------------------
paulb1fc9ac2006-01-31 10:09:27 +00001315dnl check Net-SNMP library
paul7ea487b2003-03-17 02:05:07 +00001316dnl ------------------
paulb1fc9ac2006-01-31 10:09:27 +00001317if test "${enable_snmp}" = "yes"; then
Joakim Tjernlundfb62a3c2008-05-13 20:03:32 +02001318 if test "$with_crypto" != "no"; then
1319 LIBS="${LIBS} -lcrypto";
1320 fi
paulb1fc9ac2006-01-31 10:09:27 +00001321 AC_CHECK_LIB(netsnmp, asn_parse_int,
1322 [AC_DEFINE(HAVE_NETSNMP,,Net SNMP)
1323 AC_DEFINE(HAVE_SNMP,,SNMP)
1324 LIBS="${LIBS} -lnetsnmp"],
1325 [AC_MSG_ERROR([--enable-snmp given, but cannot find support for SNMP])])
Joakim Tjernlundfb62a3c2008-05-13 20:03:32 +02001326
1327 AC_CHECK_HEADER([net-snmp/net-snmp-config.h],
1328 [],
1329 [AC_MSG_ERROR([--enable-snmp given, but cannot find net-snmp-config.h])],
1330 QUAGGA_INCLUDES)
paulb1fc9ac2006-01-31 10:09:27 +00001331 AC_SUBST(SNMP_INCLUDES)
paul7ea487b2003-03-17 02:05:07 +00001332fi
1333
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001334dnl ---------------------------
1335dnl sockaddr and netinet checks
1336dnl ---------------------------
1337AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
1338 struct sockaddr_in6, struct sockaddr_un, struct sockaddr_dl,
1339 socklen_t,
1340 struct ifaliasreq, struct if6_aliasreq, struct in6_aliasreq,
1341 struct nd_opt_adv_interval, struct rt_addrinfo,
Paul Jakma11770e12007-06-22 16:14:42 +00001342 struct nd_opt_homeagent_info, struct nd_opt_adv_interval],
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001343 [], [], QUAGGA_INCLUDES)
paul7ea487b2003-03-17 02:05:07 +00001344
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001345AC_CHECK_MEMBERS([struct sockaddr.sa_len,
1346 struct sockaddr_in.sin_len, struct sockaddr_un.sun_len,
1347 struct sockaddr_in6.sin6_scope_id,
1348 struct if6_aliasreq.ifra_lifetime,
1349 struct nd_opt_adv_interval.nd_opt_ai_type],
1350 [], [], QUAGGA_INCLUDES)
hasso71c0fb52003-05-25 20:18:13 +00001351
paul7ea487b2003-03-17 02:05:07 +00001352dnl ---------------------------
Paul Jakma11770e12007-06-22 16:14:42 +00001353dnl IRDP/pktinfo/icmphdr checks
paul7ea487b2003-03-17 02:05:07 +00001354dnl ---------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001355AC_CHECK_TYPES([struct in_pktinfo],
Paul Jakma11770e12007-06-22 16:14:42 +00001356 [AC_CHECK_TYPES([struct icmphdr],
1357 [if test "${enable_irdp}" != "no"; then
1358 AC_DEFINE(HAVE_IRDP,, IRDP)
1359 fi],
1360 [if test "${enable_irdp}" = "yes"; then
1361 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1362 fi], [QUAGGA_INCLUDES])],
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001363 [if test "${enable_irdp}" = "yes"; then
1364 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1365 fi], [QUAGGA_INCLUDES])
vincent29c4c9b2005-03-25 13:05:47 +00001366
paul7ea487b2003-03-17 02:05:07 +00001367dnl --------------------------------------
1368dnl checking for getrusage struct and call
1369dnl --------------------------------------
1370AC_MSG_CHECKING(whether getrusage is available)
1371AC_TRY_COMPILE([#include <sys/resource.h>
1372],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
1373[AC_MSG_RESULT(yes)
1374 AC_DEFINE(HAVE_RUSAGE,,rusage)],
1375 AC_MSG_RESULT(no))
1376
Stephen Hemmingerc4376c92009-05-28 15:29:10 -07001377dnl --------------------------------------
1378dnl checking for clock_time monotonic struct and call
1379dnl --------------------------------------
Paul Jakma6511cab2009-06-18 17:38:01 +01001380AC_CHECK_DECL(CLOCK_MONOTONIC,
1381 [AC_CHECK_LIB(rt, clock_gettime, [LIBS="$LIBS -lrt"])
Dmitry Tejblum9964fcf2009-11-05 16:50:36 +03001382 AC_DEFINE(HAVE_CLOCK_MONOTONIC,, Have monotonic clock)
Paul Jakma6511cab2009-06-18 17:38:01 +01001383], [AC_MSG_RESULT(no)], [QUAGGA_INCLUDES])
Stephen Hemmingerc4376c92009-05-28 15:29:10 -07001384
pauledd7c242003-06-04 13:59:38 +00001385dnl -------------------
1386dnl capabilities checks
1387dnl -------------------
hasso41d3fc92004-04-06 11:59:00 +00001388if test "${enable_capabilities}" != "no"; then
1389 AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
1390 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
1391 [AC_MSG_RESULT(yes)
1392 AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
1393 quagga_ac_keepcaps="yes"],
1394 AC_MSG_RESULT(no)
pauledd7c242003-06-04 13:59:38 +00001395 )
hasso41d3fc92004-04-06 11:59:00 +00001396 if test x"${quagga_ac_keepcaps}" = x"yes"; then
1397 AC_CHECK_HEADERS(sys/capability.h)
1398 fi
1399 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
1400 AC_CHECK_LIB(cap, cap_init,
1401 [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
1402 LIBCAP="-lcap"
paulceacedb2005-09-29 14:39:32 +00001403 quagga_ac_lcaps="yes"]
hasso41d3fc92004-04-06 11:59:00 +00001404 )
paulceacedb2005-09-29 14:39:32 +00001405 else
1406 AC_CHECK_HEADERS(priv.h,
1407 [AC_MSG_CHECKING(Solaris style privileges are available)
1408 AC_TRY_COMPILE([#include <priv.h>],[getpflags(PRIV_AWARE);],
1409 [AC_MSG_RESULT(yes)
1410 AC_DEFINE(HAVE_SOLARIS_CAPABILITIES,1,getpflags)
1411 quagga_ac_scaps="yes"],
1412 AC_MSG_RESULT(no)
1413 )
1414 ]
1415 )
1416 fi
1417 if test x"${quagga_ac_scaps}" = x"yes" \
1418 -o x"${quagga_ac_lcaps}" = x"yes"; then
1419 AC_DEFINE(HAVE_CAPABILITIES,1,capabilities)
hasso41d3fc92004-04-06 11:59:00 +00001420 fi
pauledd7c242003-06-04 13:59:38 +00001421fi
1422AC_SUBST(LIBCAP)
1423
paulfb2d1502003-06-04 09:40:54 +00001424dnl ---------------------------
1425dnl check for glibc 'backtrace'
1426dnl ---------------------------
1427if test "${glibc}" = "yes"; then
Paul Jakmafb66b292006-05-28 08:26:15 +00001428 AC_CHECK_HEADER([execinfo.h],
1429 [AC_CHECK_FUNC([backtrace],
1430 [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
1431 AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
1432 ])
1433 ])
paulfb2d1502003-06-04 09:40:54 +00001434fi
1435
Paul Jakma41be32b2006-03-30 13:53:59 +00001436dnl -----------------------------------------
1437dnl check for malloc mallinfo struct and call
1438dnl this must try and link using LIBS, in
1439dnl order to check no alternative allocator
1440dnl has been specified, which might not provide
1441dnl mallinfo, e.g. such as Umem on Solaris.
1442dnl -----------------------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001443AC_CHECK_HEADER([malloc.h],
Paul Jakma41be32b2006-03-30 13:53:59 +00001444 [AC_MSG_CHECKING(whether mallinfo is available)
1445 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]],
1446 [[struct mallinfo ac_x; ac_x = mallinfo ();]])],
1447 [AC_MSG_RESULT(yes)
1448 AC_DEFINE(HAVE_MALLINFO,,mallinfo)],
1449 AC_MSG_RESULT(no)
1450 )
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001451 ], [], QUAGGA_INCLUDES)
Paul Jakma41be32b2006-03-30 13:53:59 +00001452
paul408ad942003-05-20 00:03:33 +00001453dnl ----------
1454dnl configure date
1455dnl ----------
1456CONFDATE=`date '+%Y%m%d'`
1457AC_SUBST(CONFDATE)
1458
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001459dnl Conditionally enable PIE support for GNU toolchains.
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001460AC_ARG_ENABLE(pie, AS_HELP_STRING([--disable-pie], [Do not build tools as a Position Independent Executables]))
Paul P Komkoff Jr0e9de562008-09-24 16:42:35 +01001461if test "$enable_pie" != "no"; then
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001462 AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
1463 save_CFLAGS=$CFLAGS
1464 save_LDFLAGS=$LDFLAGS
1465 CFLAGS="$CFLAGS -fPIE"
1466 LDFLAGS="$LDFLAGS -pie"
1467 AC_LINK_IFELSE([AC_LANG_SOURCE([[static int foo[30000]; int main () { return 0; }]])],
1468 [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no]
1469 )
1470 CFLAGS=$save_CFLAGS
1471 LDFLAGS=$save_LDFLAGS
1472 ])
1473 if test "$ap_cv_cc_pie" = "yes"; then
1474 PICFLAGS="-fPIE"
1475 PILDFLAGS="-pie"
1476 fi
1477fi
1478
1479AC_SUBST(PICFLAGS)
1480AC_SUBST(PILDFLAGS)
1481
paul7ea487b2003-03-17 02:05:07 +00001482dnl ------------------------------
paula159ed92003-06-04 11:01:45 +00001483dnl set paths for state directory
paul23bd12c2003-04-07 06:11:09 +00001484dnl ------------------------------
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001485AC_MSG_CHECKING(directory to use for state file)
paul23bd12c2003-04-07 06:11:09 +00001486if test "${prefix}" = "NONE"; then
paule8f29842003-08-12 13:08:31 +00001487 quagga_statedir_prefix="";
paul23bd12c2003-04-07 06:11:09 +00001488else
paule8f29842003-08-12 13:08:31 +00001489 quagga_statedir_prefix=${prefix}
paul23bd12c2003-04-07 06:11:09 +00001490fi
1491if test "${localstatedir}" = '${prefix}/var'; then
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001492 for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
paule8f29842003-08-12 13:08:31 +00001493 ${quagga_statedir_prefix}/var/adm dnl
1494 ${quagga_statedir_prefix}/etc dnl
paula159ed92003-06-04 11:01:45 +00001495 /var/run dnl
1496 /var/adm dnl
1497 /etc dnl
1498 /dev/null;
paul23bd12c2003-04-07 06:11:09 +00001499 do
paule8f29842003-08-12 13:08:31 +00001500 test -d $QUAGGA_STATE_DIR && break
paul23bd12c2003-04-07 06:11:09 +00001501 done
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001502 quagga_statedir=$QUAGGA_STATE_DIR
paul23bd12c2003-04-07 06:11:09 +00001503else
paule8f29842003-08-12 13:08:31 +00001504 quagga_statedir=${localstatedir}
paul23bd12c2003-04-07 06:11:09 +00001505fi
paule8f29842003-08-12 13:08:31 +00001506if test $quagga_statedir = "/dev/null"; then
paula159ed92003-06-04 11:01:45 +00001507 AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
1508fi
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001509AC_MSG_RESULT(${quagga_statedir})
1510AC_SUBST(quagga_statedir)
paula159ed92003-06-04 11:01:45 +00001511
paule8f29842003-08-12 13:08:31 +00001512AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
1513AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
1514AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
1515AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
1516AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
1517AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
jardin9e867fe2003-12-23 08:56:18 +00001518AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$quagga_statedir/isisd.pid",isisd PID)
ajsd0199432004-12-22 14:03:52 +00001519AC_DEFINE_UNQUOTED(PATH_WATCHQUAGGA_PID, "$quagga_statedir/watchquagga.pid",watchquagga PID)
paule8f29842003-08-12 13:08:31 +00001520AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
1521AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
1522AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
1523AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
1524AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
1525AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
1526AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
jardin9e867fe2003-12-23 08:56:18 +00001527AC_DEFINE_UNQUOTED(ISIS_VTYSH_PATH, "$quagga_statedir/isisd.vty",isisd vty socket)
ajs515210b2004-12-22 15:35:12 +00001528AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$quagga_statedir",daemon vty directory)
paul7ea487b2003-03-17 02:05:07 +00001529
paul1eb8ef22005-04-07 07:30:20 +00001530dnl -------------------------------
1531dnl Quagga sources should always be
1532dnl current wrt interfaces. Dont
1533dnl allow deprecated interfaces to
1534dnl be exposed.
1535dnl -------------------------------
1536AC_DEFINE(QUAGGA_NO_DEPRECATED_INTERFACES, 1, Hide deprecated interfaces)
1537
paul7ea487b2003-03-17 02:05:07 +00001538dnl ---------------------------
1539dnl Check htonl works correctly
1540dnl ---------------------------
1541AC_MSG_CHECKING(for working htonl)
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001542AC_CACHE_VAL(ac_cv_htonl_works,
1543 [AC_LINK_IFELSE([AC_LANG_PROGRAM([QUAGGA_INCLUDES],[htonl (0);])],
1544 [ac_cv_htonl_works=yes], [ac_cv_htonl_works=no])
1545 ]
1546)
paul7ea487b2003-03-17 02:05:07 +00001547AC_MSG_RESULT($ac_cv_htonl_works)
1548
paul14c17fd2004-11-07 22:34:23 +00001549AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
ajsd0199432004-12-22 14:03:52 +00001550 ripngd/Makefile bgpd/Makefile ospfd/Makefile watchquagga/Makefile
jardin9e867fe2003-12-23 08:56:18 +00001551 ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile
paul14c17fd2004-11-07 22:34:23 +00001552 ospfclient/Makefile tests/Makefile m4/Makefile redhat/Makefile
gdt69f1fc22004-08-27 15:57:35 +00001553 pkgsrc/Makefile
paul670bbf12004-11-12 09:05:00 +00001554 redhat/quagga.spec
gdtb7a97f82004-07-23 16:23:56 +00001555 lib/version.h
paul14c17fd2004-11-07 22:34:23 +00001556 doc/defines.texi
hassof695b012005-04-02 19:03:39 +00001557 isisd/topology/Makefile
gdtcbd04082004-08-31 18:16:36 +00001558 pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh
paulf31293a2004-11-12 09:27:04 +00001559 pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh])
paul26275b02005-04-11 07:10:47 +00001560AC_CONFIG_FILES([solaris/Makefile])
1561
paul670bbf12004-11-12 09:05:00 +00001562AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
hasso48577192004-11-19 06:41:49 +00001563## Hack, but working solution to avoid rebuilding of quagga.info.
1564## It's already in CVS until texinfo 4.7 is more common.
paul14c17fd2004-11-07 22:34:23 +00001565AC_OUTPUT
paul7ea487b2003-03-17 02:05:07 +00001566
1567echo "
hassoc89f6492004-08-26 12:21:28 +00001568Quagga configuration
1569--------------------
1570quagga version : ${PACKAGE_VERSION}
David Wardcdb99502009-12-03 20:22:47 +03001571host operating system : ${host_os}
paul7ea487b2003-03-17 02:05:07 +00001572source code location : ${srcdir}
1573compiler : ${CC}
1574compiler flags : ${CFLAGS}
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001575make : ${MAKE-make}
hasso2d582282005-03-28 15:29:07 +00001576includes : ${INCLUDES} ${SNMP_INCLUDES}
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001577linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM}
paule8f29842003-08-12 13:08:31 +00001578state file directory : ${quagga_statedir}
pauldc7a2bf2003-10-22 00:07:44 +00001579config file directory : `eval echo \`echo ${sysconfdir}\``
gdtd6b72f72003-12-03 17:24:27 +00001580example directory : `eval echo \`echo ${exampledir}\``
paul8d4aee52003-06-06 00:30:35 +00001581user to run as : ${enable_user}
1582group to run as : ${enable_group}
1583group for vty sockets : ${enable_vty_group}
gdtaa593d52003-12-22 20:15:53 +00001584config file mask : ${enable_configfile_mask}
1585log file mask : ${enable_logfile_mask}
pauldc7a2bf2003-10-22 00:07:44 +00001586
1587The above user and group must have read/write access to the state file
Paul Jakma105b8232006-05-28 08:02:41 +00001588directory and to the config files in the config file directory."
1589
1590if test x"$quagga_cv_gnu_make" = x"no"; then echo "
1591Warning: The ${MAKE-make} programme detected, either in your path or
1592via the MAKE variable, is not GNU Make. GNU make may be installed as
1593gmake on some systems. and is required to complete a build of Quagga
1594" > /dev/stderr
1595fi