blob: 4209c0b96faa824c042597a00d51f7389f7cea7b [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 Ovsienko878715c2011-07-12 17:14:13 +040011AC_INIT(Quagga, 0.99.17.1, [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,
paul1ef74ef2003-03-21 15:16:05 +0000222[ --enable-opaque-lsa enable OSPF Opaque-LSA with OSPFAPI support (RFC2370)])
223AC_ARG_ENABLE(ospfapi,
224[ --disable-ospfapi do not build OSPFAPI to access the OSPF LSA Database,
225 (this is the default if --enable-opaque-lsa is not set)])
226AC_ARG_ENABLE(ospfclient,
227[ --disable-ospfclient do not build OSPFAPI client for OSPFAPI,
228 (this is the default if --disable-ospfapi is set)])
paul7ea487b2003-03-17 02:05:07 +0000229AC_ARG_ENABLE(ospf-te,
230[ --enable-ospf-te enable Traffic Engineering Extension to OSPF])
231AC_ARG_ENABLE(multipath,
232[ --enable-multipath=ARG enable multipath function, ARG must be digit])
Paul P Komkoff Jrfe86b482008-08-13 16:56:05 +0100233AC_ARG_ENABLE(user,
234 AC_HELP_STRING([--enable-user=user], [user to run Quagga suite as (default quagga)]))
235AC_ARG_ENABLE(group,
236 AC_HELP_STRING([--enable-group=group], [group to run Quagga suite as (default quagga)]))
pauledd7c242003-06-04 13:59:38 +0000237AC_ARG_ENABLE(vty_group,
paul6b6942f2004-10-22 04:55:05 +0000238[ --enable-vty-group=ARG set vty sockets to have specified group as owner])
gdtaa593d52003-12-22 20:15:53 +0000239AC_ARG_ENABLE(configfile_mask,
240[ --enable-configfile-mask=ARG set mask for config files])
241AC_ARG_ENABLE(logfile_mask,
242[ --enable-logfile-mask=ARG set mask for log files])
pauledd7c242003-06-04 13:59:38 +0000243
hasso71c0fb52003-05-25 20:18:13 +0000244AC_ARG_ENABLE(rtadv,
paul6b6942f2004-10-22 04:55:05 +0000245[ --disable-rtadv disable IPV6 router advertisement feature])
hassoca776982004-06-12 14:33:05 +0000246AC_ARG_ENABLE(irdp,
paul6b6942f2004-10-22 04:55:05 +0000247[ --enable-irdp enable IRDP server support in zebra])
hassof695b012005-04-02 19:03:39 +0000248AC_ARG_ENABLE(isis_topology,
249[ --enable-isis-topology enable IS-IS topology generator])
hasso41d3fc92004-04-06 11:59:00 +0000250AC_ARG_ENABLE(capabilities,
251[ --disable-capabilities disable using POSIX capabilities])
paul6b6942f2004-10-22 04:55:05 +0000252AC_ARG_ENABLE(gcc_ultra_verbose,
253[ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings])
Paul Jakma3453a712009-06-12 14:21:02 +0100254AC_ARG_ENABLE(linux24_tcp_md5,
255[ --enable-linux24-tcp-md5 enable support for old, Linux-2.4 RFC2385 patch])
ajs3cade262004-12-29 17:50:22 +0000256AC_ARG_ENABLE(gcc-rdynamic,
257[ --enable-gcc-rdynamic enable gcc linking with -rdynamic for better backtraces])
ajs924b9222005-04-16 17:11:24 +0000258AC_ARG_ENABLE(time-check,
259[ --disable-time-check disable slow thread warning messages])
Jeremy Jackson25f45882009-01-12 16:06:12 -0500260AC_ARG_ENABLE(pcreposix,
261[ --enable-pcreposix enable using PCRE Posix libs for regex functions])
paul6b6942f2004-10-22 04:55:05 +0000262
263if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then
264 CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
265 CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
266 CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
267 CFLAGS="${CFLAGS} -Wpacked -Wpadded"
268fi
paul7ea487b2003-03-17 02:05:07 +0000269
ajs3cade262004-12-29 17:50:22 +0000270if test x"${enable_gcc_rdynamic}" = x"yes" ; then
271 LDFLAGS="${LDFLAGS} -rdynamic"
272fi
273
ajs924b9222005-04-16 17:11:24 +0000274if test x"${enable_time_check}" != x"no" ; then
275 if test x"${enable_time_check}" = x"yes" -o x"${enable_time_check}" = x ; then
276 AC_DEFINE(CONSUMED_TIME_CHECK,5000000,Consumed Time Check)
277 else
278 AC_DEFINE_UNQUOTED(CONSUMED_TIME_CHECK,$enable_time_check,Consumed Time Check)
279 fi
280fi
281
paul7ea487b2003-03-17 02:05:07 +0000282if test "${enable_broken_aliases}" = "yes"; then
283 if test "${enable_netlink}" = "yes"
284 then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000285 AC_MSG_FAILURE([Sorry you can not use netlink with broken aliases])
paul7ea487b2003-03-17 02:05:07 +0000286 fi
287 AC_DEFINE(HAVE_BROKEN_ALIASES,,Broken Alias)
288 enable_netlink=no
289fi
290
291if test "${enable_tcp_zebra}" = "yes"; then
292 AC_DEFINE(HAVE_TCP_ZEBRA,,Use TCP for zebra communication)
293fi
294
paul7ea487b2003-03-17 02:05:07 +0000295if test "${enable_opaque_lsa}" = "yes"; then
296 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
297fi
298
299if test "${enable_ospf_te}" = "yes"; then
300 AC_DEFINE(HAVE_OPAQUE_LSA,,OSPF Opaque LSA)
301 AC_DEFINE(HAVE_OSPF_TE,,OSPF TE)
302fi
303
Paul Jakma3453a712009-06-12 14:21:02 +0100304if test "${enable_linux24_tcp_md5}" = "yes"; then
305 AC_DEFINE(HAVE_TCP_MD5_LINUX24,,Old Linux 2.4 TCP MD5 Signature Patch)
306fi
307
gdtd2a0ccc2003-12-03 18:13:48 +0000308AC_MSG_CHECKING(if zebra should be configurable to send Route Advertisements)
309if test "${enable_rtadv}" != "no"; then
hasso71c0fb52003-05-25 20:18:13 +0000310 AC_MSG_RESULT(yes)
gdtd2a0ccc2003-12-03 18:13:48 +0000311 AC_DEFINE(HAVE_RTADV,,Enable IPv6 Routing Advertisement support)
paul2487bea2003-05-25 23:51:31 +0000312else
313 AC_MSG_RESULT(no)
hasso71c0fb52003-05-25 20:18:13 +0000314fi
paul7ea487b2003-03-17 02:05:07 +0000315
hassoca776982004-06-12 14:33:05 +0000316if test "${enable_irdp}" = "yes"; then
317 AC_DEFINE(HAVE_IRDP,, IRDP )
318fi
319
hassof695b012005-04-02 19:03:39 +0000320if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then
321 AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code)
322 ISIS_TOPOLOGY_INCLUDES="-I./topology"
323 ISIS_TOPOLOGY_DIR="topology"
324 ISIS_TOPOLOGY_LIB="./topology/libtopology.a"
325fi
326
327AC_SUBST(ISIS_TOPOLOGY_INCLUDES)
328AC_SUBST(ISIS_TOPOLOGY_DIR)
329AC_SUBST(ISIS_TOPOLOGY_LIB)
330
paul79cb2162003-06-06 12:19:53 +0000331if test "${enable_user}" = "yes" || test x"${enable_user}" = x""; then
paule8f29842003-08-12 13:08:31 +0000332 enable_user="quagga"
pauledd7c242003-06-04 13:59:38 +0000333elif test "${enable_user}" = "no"; then
334 enable_user="root"
335fi
pauledd7c242003-06-04 13:59:38 +0000336
paul79cb2162003-06-06 12:19:53 +0000337if test "${enable_group}" = "yes" || test x"${enable_group}" = x""; then
paule8f29842003-08-12 13:08:31 +0000338 enable_group="quagga"
pauledd7c242003-06-04 13:59:38 +0000339elif test "${enable_group}" = "no"; then
340 enable_group="root"
341fi
pauledd7c242003-06-04 13:59:38 +0000342
343if test x"${enable_vty_group}" = x"yes" ; then
paul8d4aee52003-06-06 00:30:35 +0000344 AC_MSG_ERROR([--enable-vty-group requires a group as argument, not yes])
paul79cb2162003-06-06 12:19:53 +0000345elif test x"${enable_vty_group}" != x""; then
paul8d4aee52003-06-06 00:30:35 +0000346 if test x"${enable_vty_group}" != x"no"; then
pauledd7c242003-06-04 13:59:38 +0000347 AC_DEFINE_UNQUOTED(VTY_GROUP, "${enable_vty_group}", VTY Sockets Group)
348 fi
349fi
paul26275b02005-04-11 07:10:47 +0000350AC_SUBST([enable_user])
351AC_SUBST([enable_group])
352AC_SUBST([enable_vty_group])
353AC_DEFINE_UNQUOTED(QUAGGA_USER, "${enable_user}", Quagga User)
354AC_DEFINE_UNQUOTED(QUAGGA_GROUP, "${enable_group}", Quagga Group)
pauledd7c242003-06-04 13:59:38 +0000355
gdtaa593d52003-12-22 20:15:53 +0000356enable_configfile_mask=${enable_configfile_mask:-0600}
357AC_DEFINE_UNQUOTED(CONFIGFILE_MASK, ${enable_configfile_mask}, Mask for config files)
358
359enable_logfile_mask=${enable_logfile_mask:-0600}
360AC_DEFINE_UNQUOTED(LOGFILE_MASK, ${enable_logfile_mask}, Mask for log files)
361
paul7ea487b2003-03-17 02:05:07 +0000362MULTIPATH_NUM=1
363
364case "${enable_multipath}" in
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000365 [[0-9]|[1-9][0-9]])
paul7ea487b2003-03-17 02:05:07 +0000366 MULTIPATH_NUM="${enable_multipath}"
367 ;;
368 "")
369 ;;
370 *)
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000371 AC_MSG_FAILURE([Please specify digit to enable multipath ARG])
paul7ea487b2003-03-17 02:05:07 +0000372 ;;
373esac
374
paul7ea487b2003-03-17 02:05:07 +0000375AC_SUBST(MULTIPATH_NUM)
376
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000377dnl ------------------------------------
378dnl Check C keywords and standard types
379dnl ------------------------------------
380AC_C_CONST
381AC_C_INLINE
382AC_C_RESTRICT
383AC_C_VOLATILE
pauldc7a2bf2003-10-22 00:07:44 +0000384AC_HEADER_STDC
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000385AC_HEADER_TIME
386AC_HEADER_SYS_WAIT
387dnl AC_TYPE_PID_T
388AC_TYPE_UID_T
389AC_TYPE_MODE_T
390AC_TYPE_SIZE_T
391AC_TYPE_SIGNAL
392AC_STRUCT_TM
pauldc7a2bf2003-10-22 00:07:44 +0000393
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000394dnl -------------------------
395dnl Check other header files.
396dnl -------------------------
397AC_CHECK_HEADERS([stropts.h sys/ksym.h sys/times.h sys/select.h \
398 sys/types.h linux/version.h netdb.h asm/types.h \
399 sys/param.h limits.h signal.h libutil.h \
Paul Jakma6511cab2009-06-18 17:38:01 +0100400 sys/socket.h netinet/in.h time.h sys/time.h])
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000401
402dnl Utility macro to avoid retyping includes all the time
403m4_define([QUAGGA_INCLUDES],
404[#ifdef SUNOS_5
405#define _XPG4_2
406#define __EXTENSIONS__
407#endif
408#include <stdio.h>
409#if STDC_HEADERS
410# include <stdlib.h>
411# include <stddef.h>
412#else
413# if HAVE_STDLIB_H
414# include <stdlib.h>
415# endif
416#endif
417#if HAVE_SYS_TYPES_H
418# include <sys/types.h>
419#endif
420/* sys/conf.h depends on param.h on FBSD at least */
421#if HAVE_SYS_PARAM_H
422# include <sys/param.h>
423#endif
424/* Required for MAXSIG */
425#if HAVE_SIGNAL_H
426# include <signal.h>
427#endif
428#if HAVE_SYS_SOCKET_H
429# include <sys/socket.h>
430#endif
431#if HAVE_NETINET_IN_H
432# include <netinet/in.h>
433#endif
Paul Jakma6511cab2009-06-18 17:38:01 +0100434#ifdef TIME_WITH_SYS_TIME
435# include <sys/time.h>
436# include <time.h>
437#else
438# ifdef HAVE_SYS_TIME_H
439# include <sys/time.h>
440# else
441# include <time.h>
442# endif
443#endif /* TIME_WITH_SYS_TIME */
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000444])dnl
445
Denis Ovsienko51122332011-07-14 16:30:08 +0400446dnl HAVE_NET_IF_H must be discovered by the time the longer AC_CHECK_HEADERS
447dnl round below execution begins, otherwise it doesn't properly detect
448dnl HAVE_NETINET6_IN6_VAR_H, HAVE_NET_IF_VAR_H and HAVE_STRUCT_IN6_ALIASREQ
449dnl on FreeBSD (BZ#408).
450
451AC_CHECK_HEADERS([net/if.h], [], [], QUAGGA_INCLUDES)
452
453m4_define([QUAGGA_INCLUDES],
454QUAGGA_INCLUDES
455[#if HAVE_NET_IF_H
456# include <net/if.h>
457#endif
458])dnl
459
460dnl Same applies for HAVE_NET_IF_VAR_H, which HAVE_NETINET6_ND6_H and
461dnl HAVE_NETINET_IN_VAR_H depend upon. But if_var.h depends on if.h, hence
462dnl an additional round for it.
463
464AC_CHECK_HEADERS([net/if_var.h], [], [], QUAGGA_INCLUDES)
465
466m4_define([QUAGGA_INCLUDES],
467QUAGGA_INCLUDES
468[#if HAVE_NET_IF_VAR_H
469# include <net/if_var.h>
470#endif
471])dnl
472
473AC_CHECK_HEADERS([sys/un.h netinet/in_systm.h netinet/in_var.h \
474 net/if_dl.h net/netopt.h net/route.h \
Paul Jakma11770e12007-06-22 16:14:42 +0000475 inet/nd.h arpa/inet.h netinet/ip_icmp.h \
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000476 fcntl.h stddef.h sys/ioctl.h syslog.h wchar.h wctype.h \
477 sys/sysctl.h sys/sockio.h kvm.h sys/conf.h],
478 [], [], QUAGGA_INCLUDES)
479
480AC_CHECK_HEADERS([ucontext.h], [], [],
481[#ifndef __USE_GNU
482#define __USE_GNU
483#endif /* __USE_GNU */
484QUAGGA_INCLUDES
485])
486
487m4_define([QUAGGA_INCLUDES],
488QUAGGA_INCLUDES
Denis Ovsienko51122332011-07-14 16:30:08 +0400489[#if HAVE_SYS_UN_H
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000490# include <sys/un.h>
491#endif
492#if HAVE_NETINET_IN_SYSTM_H
493# include <netinet/in_systm.h>
494#endif
495#if HAVE_NETINET_IN_VAR_H
496# include <netinet/in_var.h>
497#endif
498#if HAVE_NET_IF_DL_H
499# include <net/if_dl.h>
500#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000501#if HAVE_NET_NETOPT_H
502# include <net/netopt.h>
503#endif
504#if HAVE_NET_ROUTE_H
505# include <net/route.h>
506#endif
507#if HAVE_INET_ND_H
508# include <inet/nd.h>
509#endif
510#if HAVE_ARPA_INET_H
511# include <arpa/inet.h>
512#endif
Paul Jakma11770e12007-06-22 16:14:42 +0000513/* Required for IDRP */
514#if HAVE_NETINET_IP_ICMP_H
515# include <netinet/ip_icmp.h>
516#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000517])dnl
pauldc7a2bf2003-10-22 00:07:44 +0000518
gdtfa3232e2003-12-03 17:52:30 +0000519dnl V6 headers are checked below, after we check for v6
paul7ea487b2003-03-17 02:05:07 +0000520
paul7ea487b2003-03-17 02:05:07 +0000521dnl Some systems (Solaris 2.x) require libnsl (Network Services Library)
522case "$host" in
paulafd8a122005-03-12 06:36:10 +0000523 [*-sunos5.[6-7]*] | [*-solaris2.[6-7]*])
paul7ea487b2003-03-17 02:05:07 +0000524 opsys=sol2-6
paulafd8a122005-03-12 06:36:10 +0000525 AC_DEFINE(SUNOS_56, 1, SunOS 5.6 to 5.7)
paul19877dd2004-05-11 10:49:35 +0000526 AC_DEFINE(SUNOS_5, 1, SunOS 5)
paul7ea487b2003-03-17 02:05:07 +0000527 AC_CHECK_LIB(xnet, main)
528 CURSES=-lcurses
529 ;;
paul1b73de82005-04-10 16:31:51 +0000530 [*-sunos5.[8-9]] \
531 | [*-sunos5.1[0-9]] \
532 | [*-sunos5.1[0-9].[0-9]] \
533 | [*-solaris2.[8-9]] \
534 | [*-solaris2.1[0-9]] \
535 | [*-solaris2.1[0-9].[0-9]])
paulafd8a122005-03-12 06:36:10 +0000536 opsys=sol8
Paul Jakmafb66b292006-05-28 08:26:15 +0000537 AC_DEFINE(SUNOS_59, 1, [SunOS 5.8 up])
538 AC_DEFINE(SUNOS_5, 1, [SunOS 5])
paul19877dd2004-05-11 10:49:35 +0000539 AC_CHECK_LIB(socket, main)
540 AC_CHECK_LIB(nsl, main)
paul1b73de82005-04-10 16:31:51 +0000541 AC_CHECK_LIB(umem, main)
Paul Jakmafb66b292006-05-28 08:26:15 +0000542 AC_CHECK_FUNCS([printstack],
543 [AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
544 AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
545 ])
paul19877dd2004-05-11 10:49:35 +0000546 CURSES=-lcurses
547 ;;
paul7ea487b2003-03-17 02:05:07 +0000548 *-sunos5* | *-solaris2*)
paul19877dd2004-05-11 10:49:35 +0000549 AC_DEFINE(SUNOS_5,,SunOS 5, Unknown SunOS)
paul7ea487b2003-03-17 02:05:07 +0000550 AC_CHECK_LIB(socket, main)
551 AC_CHECK_LIB(nsl, main)
552 CURSES=-lcurses
553 ;;
hassoc45eb832005-02-19 13:58:06 +0000554 *-linux*)
paul7ea487b2003-03-17 02:05:07 +0000555 opsys=gnu-linux
556 AC_DEFINE(GNU_LINUX,,GNU Linux)
557 ;;
558 *-nec-sysv4*)
559 AC_CHECK_LIB(nsl, gethostbyname)
560 AC_CHECK_LIB(socket, socket)
561 ;;
paul7ea487b2003-03-17 02:05:07 +0000562 *-openbsd*)
563 opsys=openbsd
564 AC_DEFINE(OPEN_BSD,,OpenBSD)
565 ;;
566 *-bsdi*)
567 opsys=bsdi
568 OTHER_METHOD="mtu_kvm.o"
569 AC_CHECK_LIB(kvm, main)
570 ;;
paul49e3b3c2003-10-23 20:39:50 +0000571 *-irix6.5)
pauldc7a2bf2003-10-22 00:07:44 +0000572 opsys=irix
573 AC_DEFINE(IRIX_65,,IRIX 6.5)
574 ;;
paul7ea487b2003-03-17 02:05:07 +0000575esac
576
Paul Jakma62c9f502009-07-19 17:33:21 +0100577AC_SYS_LARGEFILE
578
paul7ea487b2003-03-17 02:05:07 +0000579dnl ---------------------
580dnl Integrated VTY option
581dnl ---------------------
582case "${enable_vtysh}" in
583 "yes") VTYSH="vtysh";
584 AC_DEFINE(VTYSH,,VTY shell)
gdtfc9d0742004-06-30 14:25:12 +0000585 AC_PATH_PROG(PERL, perl)
586dnl Vtysh uses libreadline, which looks for termcap functions at
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000587dnl configure time. We follow readlines search order.
gdtfc9d0742004-06-30 14:25:12 +0000588dnl The required procedures are in libtermcap on NetBSD, in
589dnl [TODO] on Linux, and in [TODO] on Solaris.
hassoc0689392005-08-25 12:00:58 +0000590 AC_CHECK_LIB(termcap, tputs, LIBREADLINE="$LIBREADLINE -ltermcap",
paula9694592005-08-25 14:50:05 +0000591 [AC_CHECK_LIB(tinfo, tputs, LIBREADLINE="$LIBREADLINE -ltinfo",
592 [AC_CHECK_LIB(curses, tputs, LIBREADLINE="$LIBREADLINE -lcurses",
593 [AC_CHECK_LIB(ncurses, tputs,
594 LIBREADLINE="$LIBREADLINE -lncurses")]
595 )]
596 )]
597 )
598 AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
599 "$LIBREADLINE")
paul7ea487b2003-03-17 02:05:07 +0000600 if test $ac_cv_lib_readline_main = no; then
gdtfc9d0742004-06-30 14:25:12 +0000601 AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
paul7ea487b2003-03-17 02:05:07 +0000602 fi
603 AC_CHECK_HEADER(readline/history.h)
604 if test $ac_cv_header_readline_history_h = no;then
605 AC_MSG_ERROR([readline is too old to have readline/history.h, please update to the latest readline library.])
606 fi
paula9694592005-08-25 14:50:05 +0000607 AC_CHECK_LIB(readline, rl_completion_matches,
608 LIBREADLINE="$LIBREADLINE",, "$LIBREADLINE")
paul3d3de8c2003-05-23 10:33:49 +0000609 if test $ac_cv_lib_readline_rl_completion_matches = no; then
610 AC_DEFINE(rl_completion_matches,completion_matches,Old readline)
611 fi
612 ;;
paul7ea487b2003-03-17 02:05:07 +0000613 "no" ) VTYSH="";;
614 * ) ;;
615esac
hassoc0689392005-08-25 12:00:58 +0000616AC_SUBST(LIBREADLINE)
paul7ea487b2003-03-17 02:05:07 +0000617
618dnl ----------
619dnl PAM module
Denis Ovsienko4a1342a2011-07-15 00:24:15 +0400620dnl
621dnl Quagga detects the PAM library it is built against by checking for a
622dnl functional pam_misc.h (Linux-PAM) or openpam.h (OpenPAM) header. pam_misc.h
623dnl is known to #include pam_appl.h, the standard header of a PAM library, and
624dnl openpam.h doesn't do that, although depends on the header too. Hence a
625dnl little assistance to AC_CHECK_HEADER is necessary for the proper detection
626dnl of OpenPAM.
paul7ea487b2003-03-17 02:05:07 +0000627dnl ----------
628if test "$with_libpam" = "yes"; then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000629 AC_CHECK_HEADER([security/pam_misc.h],
630 [AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
631 AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
632 pam_conv_func="misc_conv"
633 ],
634 [], QUAGGA_INCLUDES)
635 AC_CHECK_HEADER([security/openpam.h],
636 [AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
637 AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
638 pam_conv_func="openpam_ttyconv"
639 ],
Denis Ovsienko4a1342a2011-07-15 00:24:15 +0400640 [], QUAGGA_INCLUDES[#include <security/pam_appl.h>])
paul24cd4352003-05-06 12:16:27 +0000641 if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
642 AC_MSG_WARN([*** pam support will not be built ***])
643 with_libpam="no"
644 fi
645fi
646
647if test "$with_libpam" = "yes"; then
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000648dnl took this test from proftpds configure.in and suited to our needs
paul7ea487b2003-03-17 02:05:07 +0000649dnl -------------------------------------------------------------------------
650dnl
651dnl This next check looks funky due to a linker problem with some versions
652dnl of the PAM library. Prior to 0.72 release, the Linux PAM shared library
653dnl omitted requiring libdl linking information. PAM-0.72 or better ships
654dnl with RedHat 6.2 and Debian 2.2 or better.
655AC_CHECK_LIB(pam, pam_start,
paul24cd4352003-05-06 12:16:27 +0000656 [AC_CHECK_LIB(pam, $pam_conv_func,
paul7ea487b2003-03-17 02:05:07 +0000657 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
658 LIBPAM="-lpam"],
659 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
660 LIBPAM="-lpam -lpam_misc"]
661 )
662 ],
663
664 [AC_CHECK_LIB(pam, pam_end,
paul24cd4352003-05-06 12:16:27 +0000665 [AC_CHECK_LIB(pam, $pam_conv_func,
paula159ed92003-06-04 11:01:45 +0000666 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
paul7ea487b2003-03-17 02:05:07 +0000667 LIBPAM="-lpam -ldl"],
paula159ed92003-06-04 11:01:45 +0000668 [AC_DEFINE(USE_PAM,,Use PAM for authentication)
paul7ea487b2003-03-17 02:05:07 +0000669 LIBPAM="-lpam -ldl -lpam_misc"]
670 )
671 ],AC_MSG_WARN([*** pam support will not be built ***]),
672 [-ldl])
673 ]
674)
675fi
676AC_SUBST(LIBPAM)
677
678dnl -------------------------------
679dnl Endian-ness check
680dnl -------------------------------
681AC_WORDS_BIGENDIAN
682
683dnl -------------------------------
684dnl check the size in byte of the C
685dnl -------------------------------
686dnl AC_CHECK_SIZEOF(char)
687dnl AC_CHECK_SIZEOF(int)
688dnl AC_CHECK_SIZEOF(short)
689dnl AC_CHECK_SIZEOF(long)
690
691dnl ----------------------------
692dnl check existance of functions
693dnl ----------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000694AC_FUNC_CHOWN
695AC_FUNC_FNMATCH
696AC_FUNC_FORK
697AC_FUNC_MALLOC
698AC_FUNC_MEMCMP
699AC_FUNC_MKTIME
700AC_FUNC_STRFTIME
701AC_FUNC_REALLOC
702AC_FUNC_STAT
703AC_FUNC_SELECT_ARGTYPES
704AC_FUNC_STRFTIME
Paul Jakmad46d2a22007-05-10 16:53:04 +0000705dnl Avoid AC_FUNC_STRNLEN because it pulls in AC_SYSTEM_EXTENSIONS which
706dnl can lead to strange side effects. So we just check for strnlen
707dnl directly, see below.
Paul Jakma2b5cb412007-05-10 17:05:16 +0000708dnl AC_FUNC_STRNLENdnl
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000709AC_FUNC_VPRINTF
710
711dnl -------------------------------
712dnl bgpd needs pow() and hence libm
713dnl -------------------------------
714TMPLIBS="$LIBS"
715AC_CHECK_HEADER([math.h],
716 [AC_CHECK_LIB([m], [pow],
717 [LIBM="-lm"
718 LIBS="$LIBS $LIBM"
719 AC_DEFINE(HAVE_LIBM,, Have libm)
720 AC_CHECK_FUNCS(pow,[],[LIBM=""])
721 ])
722])
723if test x"$LIBM" = x ; then
724 AC_MSG_WARN([Unable to find working pow function - bgpd may not link])
725fi
726LIBS="$TMPLIBS"
727AC_SUBST(LIBM)
728
729dnl ---------------
730dnl other functions
731dnl ---------------
732AC_CHECK_FUNCS([dup2 ftruncate getcwd gethostbyname getpagesize gettimeofday \
Paul Jakmad46d2a22007-05-10 16:53:04 +0000733 inet_ntoa inet_aton strnlen \
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000734 memchr memmove memset select socket \
735 strcasecmp strchr strcspn strdup strerror \
736 strncasecmp strndup strrchr strspn strstr \
737 strtol strtoul strlcat strlcpy \
738 daemon snprintf vsnprintf \
739 if_nametoindex if_indextoname getifaddrs \
740 uname fcntl])
741
paula159ed92003-06-04 11:01:45 +0000742AC_CHECK_FUNCS(setproctitle, ,
743 [AC_CHECK_LIB(util, setproctitle,
744 [LIBS="$LIBS -lutil"
745 AC_DEFINE(HAVE_SETPROCTITLE,, Have setproctitle)
746 ]
747 )
748 ]
749)
paul7ea487b2003-03-17 02:05:07 +0000750
751dnl ------------------------------------
752dnl Determine routing get and set method
753dnl ------------------------------------
754AC_MSG_CHECKING(zebra between kernel interface method)
755if test x"$opsys" = x"gnu-linux"; then
756 if test "${enable_netlink}" = "yes";then
757 AC_MSG_RESULT(netlink)
758 RT_METHOD=rt_netlink.o
759 AC_DEFINE(HAVE_NETLINK,,netlink)
760 netlink=yes
761 elif test "${enable_netlink}" = "no"; then
762 AC_MSG_RESULT(ioctl)
763 RT_METHOD=rt_ioctl.o
764 netlink=no
765 else
766 AC_MSG_RESULT(netlink)
767 RT_METHOD=rt_netlink.o
768 AC_DEFINE(HAVE_NETLINK,,netlink)
769 netlink=yes
770 fi
paul19877dd2004-05-11 10:49:35 +0000771elif test x"$opsys" = x"sol2-6";then
772 AC_MSG_RESULT(Route socket)
773 KERNEL_METHOD="kernel_socket.o"
774 RT_METHOD="rt_socket.o"
paulafd8a122005-03-12 06:36:10 +0000775elif test x"$opsys" = x"sol8";then
paul19877dd2004-05-11 10:49:35 +0000776 AC_MSG_RESULT(Route socket)
777 KERNEL_METHOD="kernel_socket.o"
778 RT_METHOD="rt_socket.o"
779elif test "$opsys" = "irix" ; then
780 AC_MSG_RESULT(Route socket)
781 KERNEL_METHOD="kernel_socket.o"
782 RT_METHOD="rt_socket.o"
paul7ea487b2003-03-17 02:05:07 +0000783else
paul19877dd2004-05-11 10:49:35 +0000784 AC_TRY_RUN([#include <errno.h>
paul7ea487b2003-03-17 02:05:07 +0000785#include <sys/types.h>
786#include <sys/socket.h>
787
788main ()
789{
790 int ac_sock;
791
792 ac_sock = socket (AF_ROUTE, SOCK_RAW, 0);
793 if (ac_sock < 0 && errno == EINVAL)
794 exit (1);
795 exit (0);
796}],
797 [KERNEL_METHOD=kernel_socket.o
798 RT_METHOD=rt_socket.o
799 AC_MSG_RESULT(socket)],
800 [RT_METHOD=rt_ioctl.o
801 AC_MSG_RESULT(ioctl)],
802 [KERNEL_METHOD=kernel_socket.o
803 RT_METHOD=rt_socket.o
804 AC_MSG_RESULT(socket)])
paul7ea487b2003-03-17 02:05:07 +0000805fi
806AC_SUBST(RT_METHOD)
807AC_SUBST(KERNEL_METHOD)
808AC_SUBST(OTHER_METHOD)
809
Paul Jakma238497f2007-08-07 18:49:18 +0000810dnl --------------------------
811dnl Determine IS-IS I/O method
812dnl --------------------------
David Lamparter745bf052010-02-02 21:49:35 +0100813AC_DEFINE(ISIS_METHOD_PFPACKET, 1, [ constant value for isis method pfpacket ])
814AC_DEFINE(ISIS_METHOD_DLPI, 2, [ constant value for isis method dlpi ])
815AC_DEFINE(ISIS_METHOD_BPF, 3, [ constant value for isis method bpf ])
Paul Jakma238497f2007-08-07 18:49:18 +0000816AC_CHECK_HEADER(net/bpf.h)
817AC_CHECK_HEADER(sys/dlpi.h)
818AC_MSG_CHECKING(zebra IS-IS I/O method)
819if test x"$opsys" = x"gnu-linux"; then
820 AC_MSG_RESULT(pfpacket)
David Lamparter745bf052010-02-02 21:49:35 +0100821 ISIS_METHOD_MACRO="ISIS_METHOD_PFPACKET"
Paul Jakma238497f2007-08-07 18:49:18 +0000822elif test x"$opsys" = x"sol2-6" -o x"$opsys" = x"sol8"; then
823 AC_MSG_RESULT(DLPI)
David Lamparter745bf052010-02-02 21:49:35 +0100824 ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
Paul Jakma238497f2007-08-07 18:49:18 +0000825else
826 if test $ac_cv_header_net_bpf_h = no; then
827 if test $ac_cv_header_sys_dlpi_h = no; then
828 AC_MSG_RESULT(none)
829 AC_MSG_WARN([*** IS-IS support will not be built ***])
830 ISISD=""
831 else
832 AC_MSG_RESULT(DLPI)
833 fi
David Lamparter745bf052010-02-02 21:49:35 +0100834 ISIS_METHOD_MACRO="ISIS_METHOD_DLPI"
Paul Jakma238497f2007-08-07 18:49:18 +0000835 else
836 AC_MSG_RESULT(BPF)
David Lamparter745bf052010-02-02 21:49:35 +0100837 ISIS_METHOD_MACRO="ISIS_METHOD_BPF"
Paul Jakma238497f2007-08-07 18:49:18 +0000838 fi
839fi
David Lamparter745bf052010-02-02 21:49:35 +0100840AC_DEFINE_UNQUOTED(ISIS_METHOD, $ISIS_METHOD_MACRO, [ selected method for isis, == one of the constants ])
Paul Jakma238497f2007-08-07 18:49:18 +0000841
ajsb99760a2005-01-04 16:24:43 +0000842dnl ------------------------------------
843dnl check for broken CMSG_FIRSTHDR macro
844dnl ------------------------------------
gdt6c200462005-01-04 17:02:48 +0000845AC_MSG_CHECKING(for broken CMSG_FIRSTHDR)
hasso5b087522005-04-03 23:46:37 +0000846AC_RUN_IFELSE([AC_LANG_SOURCE([[
ajsb99760a2005-01-04 16:24:43 +0000847#ifdef SUNOS_5
848#define _XPG4_2
849#define __EXTENSIONS__
850#endif
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000851#ifdef HAVE_STDLIB_H
852# include <stdlib.h>
853#endif
854#ifdef HAVE_SYS_TYPES_H
ajsb99760a2005-01-04 16:24:43 +0000855#include <sys/types.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000856#endif
857#ifdef HAVE_SYS_SOCKET_H
ajsb99760a2005-01-04 16:24:43 +0000858#include <sys/socket.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000859#endif
ajsb99760a2005-01-04 16:24:43 +0000860
861main()
862{
863 struct msghdr msg;
864 char buf[4];
865
866 msg.msg_control = buf;
867 msg.msg_controllen = 0;
868
869 if (CMSG_FIRSTHDR(&msg) != NULL)
870 exit(0);
871 exit (1);
hasso5b087522005-04-03 23:46:37 +0000872}]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)],
hassod33e8d72005-04-03 13:07:21 +0000873[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
ajsb99760a2005-01-04 16:24:43 +0000874
paul7ea487b2003-03-17 02:05:07 +0000875dnl ------------------------------
876dnl check kernel route read method
877dnl ------------------------------
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500878AC_CACHE_CHECK([route read method], [quagga_cv_rtread_method],
879[if test "x$netlink" = xyes; then
880 quagga_cv_rtread_method="netlink"
paul7ea487b2003-03-17 02:05:07 +0000881else
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500882for quagga_cv_rtread_method in /proc/net/route /dev/ip /dev/null;
paul7ea487b2003-03-17 02:05:07 +0000883do
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500884 test x`ls $quagga_cv_rtread_method 2>/dev/null` = x"$quagga_cv_rtread_method" && break
paul7ea487b2003-03-17 02:05:07 +0000885done
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500886case $quagga_cv_rtread_method in
887 "/proc/net/route") quagga_cv_rtread_method="proc";;
paul9c30ab62003-07-08 08:36:17 +0000888 "/dev/ip")
889 case "$host" in
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500890 *-freebsd*) quagga_cv_rtread_method="sysctl";;
891 *) quagga_cv_rtread_method="getmsg";;
paul9c30ab62003-07-08 08:36:17 +0000892 esac;;
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500893 *)
894 quagga_cv_rtread_method="sysctl";;
paul7ea487b2003-03-17 02:05:07 +0000895esac
896fi])
Jeremy Jackson5589ffa2009-01-21 18:27:37 -0500897RTREAD_METHOD=rtread_${quagga_cv_rtread_method}.o
paul7ea487b2003-03-17 02:05:07 +0000898AC_SUBST(RTREAD_METHOD)
899
900dnl -----------------------------
901dnl check interface lookup method
902dnl -----------------------------
paul19877dd2004-05-11 10:49:35 +0000903IOCTL_METHOD=ioctl.o
paul7ea487b2003-03-17 02:05:07 +0000904AC_MSG_CHECKING(interface looking up method)
905if test "$netlink" = yes; then
906 AC_MSG_RESULT(netlink)
907 IF_METHOD=if_netlink.o
paul19877dd2004-05-11 10:49:35 +0000908elif test "$opsys" = "sol2-6";then
909 AC_MSG_RESULT(Solaris GIF)
910 IF_METHOD=if_ioctl.o
paulafd8a122005-03-12 06:36:10 +0000911elif test "$opsys" = "sol8";then
paul19877dd2004-05-11 10:49:35 +0000912 AC_MSG_RESULT(Solaris GLIF)
913 IF_METHOD=if_ioctl_solaris.o
914 IOCTL_METHOD=ioctl_solaris.o
915elif test "$opsys" = "irix" ; then
916 AC_MSG_RESULT(IRIX)
917 IF_METHOD=if_ioctl.o
918elif test "$opsys" = "openbsd";then
919 AC_MSG_RESULT(openbsd)
920 IF_METHOD=if_ioctl.o
921elif grep NET_RT_IFLIST /usr/include/sys/socket.h >/dev/null 2>&1; then
922 AC_MSG_RESULT(sysctl)
paul7ea487b2003-03-17 02:05:07 +0000923 IF_METHOD=if_sysctl.o
924 AC_DEFINE(HAVE_NET_RT_IFLIST,,NET_RT_IFLIST)
paul19877dd2004-05-11 10:49:35 +0000925else
paul7ea487b2003-03-17 02:05:07 +0000926 AC_MSG_RESULT(ioctl)
927 IF_METHOD=if_ioctl.o
paul7ea487b2003-03-17 02:05:07 +0000928fi
929AC_SUBST(IF_METHOD)
paul19877dd2004-05-11 10:49:35 +0000930AC_SUBST(IOCTL_METHOD)
paul7ea487b2003-03-17 02:05:07 +0000931
paul42c98192005-05-07 02:22:51 +0000932dnl ---------------------------------------------------------------
933dnl figure out how to specify an interface in multicast sockets API
934dnl ---------------------------------------------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +0000935AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [], [], QUAGGA_INCLUDES)
paul42c98192005-05-07 02:22:51 +0000936
937AC_MSG_CHECKING([for BSD struct ip_mreq hack])
938AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H
939#include <sys/param.h>
Denis Ovsienkoc5408352009-04-13 20:11:44 +0400940#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 +0000941 return (0);
942#else
943 #error No support for BSD struct ip_mreq hack detected
944#endif],[AC_MSG_RESULT(yes)
945AC_DEFINE(HAVE_BSD_STRUCT_IP_MREQ_HACK,,[Can pass ifindex in struct ip_mreq])],
946AC_MSG_RESULT(no))
947
Andrew J. Schorrc543a172008-01-10 15:24:32 +0000948dnl ---------------------------------------------------------------
949dnl figure out how to check link-state
950dnl ---------------------------------------------------------------
Andrew J. Schorr6418bed2008-01-11 16:33:59 +0000951AC_CHECK_HEADER([net/if.h],
952 [AC_CHECK_HEADER( [net/if_media.h],
953 [m4_define([LINK_DETECT_INCLUDES],
954 QUAGGA_INCLUDES
955 [#include <net/if_media.h>
956 ])
957 AC_CHECK_MEMBERS( [struct ifmediareq.ifm_status],
958 AC_DEFINE(HAVE_BSD_LINK_DETECT,,[BSD link-detect]),
959 [], LINK_DETECT_INCLUDES)],
960 [],
961 QUAGGA_INCLUDES)],
962 [], QUAGGA_INCLUDES )
Andrew J. Schorrc543a172008-01-10 15:24:32 +0000963
Paul Jakma0df7c912008-07-21 21:02:49 +0000964dnl ------------------------
965dnl TCP_MD5SIG socket option
966dnl ------------------------
967
968AC_CHECK_HEADER([netinet/tcp.h],
969 [m4_define([MD5_INCLUDES],
970 QUAGGA_INCLUDES
971 [#include <netinet/tcp.h>
972 ])
973 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)],
974 [],
975 QUAGGA_INCLUDES)
976if test $ac_cv_have_decl_TCP_MD5SIG = no; then
977 AC_CHECK_HEADER([linux/tcp.h],
978 [m4_define([MD5_INCLUDES],
979 QUAGGA_INCLUDES
980 [#include <linux/tcp.h>
981 ])
982 AC_CHECK_DECLS([TCP_MD5SIG], [], [], MD5_INCLUDES)])
983fi
984
paul7ea487b2003-03-17 02:05:07 +0000985dnl -----------------------
986dnl check proc file system.
987dnl -----------------------
Stephen Hemmingercadfb2c2008-08-16 18:03:44 +0100988if test "$netlink" != yes; then
989 if test -r /proc/net/dev; then
990 AC_DEFINE(HAVE_PROC_NET_DEV,,/proc/net/dev)
991 IF_PROC=if_proc.o
992 fi
993 if test -r /proc/net/if_inet6; then
994 AC_DEFINE(HAVE_PROC_NET_IF_INET6,,/proc/net/if_inet6)
995 IF_PROC=if_proc.o
996 fi
paul7ea487b2003-03-17 02:05:07 +0000997fi
998AC_SUBST(IF_PROC)
999
1000dnl -----------------------------
1001dnl check ipforward detect method
1002dnl -----------------------------
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001003AC_CACHE_CHECK([ipforward method], [quagga_cv_ipforward_method],
1004[for quagga_cv_ipforward_method in /proc/net/snmp /dev/ip /dev/null;
paul7ea487b2003-03-17 02:05:07 +00001005do
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001006 test x`ls $quagga_cv_ipforward_method 2>/dev/null` = x"$quagga_cv_ipforward_method" && break
paul7ea487b2003-03-17 02:05:07 +00001007done
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001008case $quagga_cv_ipforward_method in
1009 "/proc/net/snmp") quagga_cv_ipforward_method="proc";;
paul7ea487b2003-03-17 02:05:07 +00001010 "/dev/ip")
1011 case "$host" in
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001012 *-nec-sysv4*) quagga_cv_ipforward_method="ews";;
1013 *-freebsd*) quagga_cv_ipforward_method="sysctl";;
1014 *) quagga_cv_ipforward_method="solaris";;
paul7ea487b2003-03-17 02:05:07 +00001015 esac;;
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001016 *) quagga_cv_ipforward_method="sysctl";;
paul7ea487b2003-03-17 02:05:07 +00001017esac])
Jeremy Jackson5589ffa2009-01-21 18:27:37 -05001018IPFORWARD=ipforward_${quagga_cv_ipforward_method}.o
paul7ea487b2003-03-17 02:05:07 +00001019AC_SUBST(IPFORWARD)
1020
1021AC_CHECK_FUNCS(getaddrinfo, [have_getaddrinfo=yes], [have_getaddrinfo=no])
1022
1023dnl ----------
1024dnl IPv6 check
1025dnl ----------
1026AC_MSG_CHECKING(whether does this OS have IPv6 stack)
1027if test "${enable_ipv6}" = "no"; then
1028 AC_MSG_RESULT(disabled)
1029else
1030dnl ----------
1031dnl INRIA IPv6
1032dnl ----------
paula159ed92003-06-04 11:01:45 +00001033 if grep IPV6_INRIA_VERSION /usr/include/netinet/in.h >/dev/null 2>&1; then
1034 zebra_cv_ipv6=yes
1035 AC_DEFINE(HAVE_IPV6,1,INRIA IPv6)
1036 AC_DEFINE(INRIA_IPV6,1,INRIA IPv6)
1037 RIPNGD="ripngd"
1038 OSPF6D="ospf6d"
1039 LIB_IPV6=""
1040 AC_MSG_RESULT(INRIA IPv6)
paul7ea487b2003-03-17 02:05:07 +00001041dnl ---------
1042dnl KAME IPv6
1043dnl ---------
paula159ed92003-06-04 11:01:45 +00001044 elif grep WIDE /usr/include/netinet6/in6.h >/dev/null 2>&1; then
1045 zebra_cv_ipv6=yes
1046 AC_DEFINE(HAVE_IPV6,1,KAME IPv6)
1047 AC_DEFINE(KAME,1,KAME IPv6)
1048 RIPNGD="ripngd"
1049 OSPF6D="ospf6d"
1050 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
paul7ea487b2003-03-17 02:05:07 +00001051 LIB_IPV6="-L/usr/local/v6/lib -linet6"
paula159ed92003-06-04 11:01:45 +00001052 fi
1053 AC_MSG_RESULT(KAME)
hasso71c0fb52003-05-25 20:18:13 +00001054dnl -------------------------
1055dnl MUSICA IPv6
1056dnl default host check
1057dnl It is not used by Kheops
1058dnl -------------------------
paula159ed92003-06-04 11:01:45 +00001059 elif grep MUSICA /usr/include6/netinet6/in6.h >/dev/null 2>&1; then
1060 zebra_cv_ipv6=yes
1061 AC_DEFINE(HAVE_IPV6,1,Musicia IPv6)
1062 AC_DEFINE(MUSICA,1,Musica IPv6 stack)
1063 AC_DEFINE(KAME,1,KAME IPv6 stack)
1064 RIPNGD="ripngd"
1065 OSPF6D="ospf6d"
1066 if test -d /usr/local/v6/lib -a -f /usr/local/v6/lib/libinet6.a; then
hasso71c0fb52003-05-25 20:18:13 +00001067 LIB_IPV6="-L/usr/local/v6/lib -linet6"
paula159ed92003-06-04 11:01:45 +00001068 fi
1069 AC_MSG_RESULT(MUSICA)
paul7ea487b2003-03-17 02:05:07 +00001070dnl ---------
1071dnl NRL check
1072dnl ---------
paula159ed92003-06-04 11:01:45 +00001073 elif grep NRL /usr/include/netinet6/in6.h >/dev/null 2>&1; then
1074 zebra_cv_ipv6=yes
1075 AC_DEFINE(HAVE_IPV6,1,NRL IPv6)
1076 AC_DEFINE(NRL,1,NRL)
1077 RIPNGD="ripngd"
1078 OSPF6D="ospf6d"
1079 if test x"$opsys" = x"bsdi";then
paul7ea487b2003-03-17 02:05:07 +00001080 AC_DEFINE(BSDI_NRL,,BSDI)
1081 AC_MSG_RESULT(BSDI_NRL)
paula159ed92003-06-04 11:01:45 +00001082 else
paul7ea487b2003-03-17 02:05:07 +00001083 AC_MSG_RESULT(NRL)
paula159ed92003-06-04 11:01:45 +00001084 fi
paul19877dd2004-05-11 10:49:35 +00001085dnl ------------------------------------
1086dnl Solaris 9, 10 and potentially higher
1087dnl ------------------------------------
paulafd8a122005-03-12 06:36:10 +00001088 elif test x"$opsys" = x"sol8"; then
paul19877dd2004-05-11 10:49:35 +00001089 zebra_cv_ipv6=yes;
1090 AC_DEFINE(HAVE_IPV6, 1, IPv6)
1091 AC_DEFINE(SOLARIS_IPV6, 1, Solaris IPv6)
1092 RIPNGD="ripngd"
1093 OSPF6D="ospf6d"
1094 AC_MSG_RESULT(Solaris IPv6)
paul7ea487b2003-03-17 02:05:07 +00001095dnl ----------
1096dnl Linux IPv6
1097dnl ----------
paula159ed92003-06-04 11:01:45 +00001098 elif test "${enable_ipv6}" = "yes"; then
1099 AC_EGREP_CPP(yes, [
1100 #include <linux/version.h>
1101 /* 2.1.128 or later */
1102 #if LINUX_VERSION_CODE >= 0x020180
1103 yes
1104 #endif],
1105 [zebra_cv_ipv6=yes
1106 zebra_cv_linux_ipv6=yes
1107 AC_MSG_RESULT(Linux IPv6)])
1108 else
1109 if test x`ls /proc/net/ipv6_route 2>/dev/null` = x"/proc/net/ipv6_route"
1110 then
paul7ea487b2003-03-17 02:05:07 +00001111 zebra_cv_ipv6=yes
1112 zebra_cv_linux_ipv6=yes
1113 AC_MSG_RESULT(Linux IPv6)
paula159ed92003-06-04 11:01:45 +00001114 fi
1115 fi
paul7ea487b2003-03-17 02:05:07 +00001116
paula159ed92003-06-04 11:01:45 +00001117 if test "$zebra_cv_linux_ipv6" = "yes";then
hasso850d39f2005-06-30 13:52:20 +00001118 AC_MSG_CHECKING(whether libc has IPv6 support)
1119 AC_TRY_LINK([#include <netinet/in.h>
1120 ],[ int a; a = (int) in6addr_any.s6_addr[0]; if (a != 12345) return a; ],
1121 [AC_MSG_RESULT(yes)
1122 zebra_cv_ipv6=yes
1123 zebra_cv_linux_ipv6=yes],
1124 [AC_MSG_RESULT(no)
1125 zebra_cv_ipv6=no
1126 zebra_cv_linux_ipv6=no])
1127 fi
1128
1129 if test "$zebra_cv_linux_ipv6" = "yes";then
paula159ed92003-06-04 11:01:45 +00001130 AC_MSG_CHECKING(for GNU libc >= 2.1)
1131 AC_DEFINE(HAVE_IPV6,1,Linux IPv6)
1132 AC_EGREP_CPP(yes, [
paul7ea487b2003-03-17 02:05:07 +00001133#include <features.h>
1134#if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
1135 yes
paula159ed92003-06-04 11:01:45 +00001136#endif],
1137 [glibc=yes
1138 AC_DEFINE(LINUX_IPV6,1,Linux IPv6 stack)
1139 AC_MSG_RESULT(yes)],
1140 AC_MSG_RESULT(no)
1141 )
1142 RIPNGD="ripngd"
1143 OSPF6D="ospf6d"
1144 if test "$glibc" != "yes"; then
paul7ea487b2003-03-17 02:05:07 +00001145 INCLUDES="-I/usr/inet6/include"
1146 if test x`ls /usr/inet6/lib/libinet6.a 2>/dev/null` != x;then
1147 LIB_IPV6="-L/usr/inet6/lib -linet6"
1148 fi
paula159ed92003-06-04 11:01:45 +00001149 fi
1150 fi
paul7ea487b2003-03-17 02:05:07 +00001151
1152dnl -----------------------
1153dnl Set IPv6 related values
1154dnl -----------------------
paula159ed92003-06-04 11:01:45 +00001155 LIBS="$LIB_IPV6 $LIBS"
1156 AC_SUBST(LIB_IPV6)
paul7ea487b2003-03-17 02:05:07 +00001157
paula159ed92003-06-04 11:01:45 +00001158 if test x"$RIPNGD" = x""; then
1159 AC_MSG_RESULT(IPv4 only)
1160 fi
paul7ea487b2003-03-17 02:05:07 +00001161fi
1162
gdtfa3232e2003-12-03 17:52:30 +00001163dnl ------------------
1164dnl IPv6 header checks
1165dnl ------------------
1166if test "x${zebra_cv_ipv6}" = "xyes"; then
1167AC_CHECK_HEADERS([netinet6/in6.h netinet/in6_var.h netinet/icmp6.h \
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001168 netinet6/in6_var.h netinet6/nd6.h], [], [],
1169 QUAGGA_INCLUDES)
gdtfa3232e2003-12-03 17:52:30 +00001170fi
1171
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001172m4_define([QUAGGA_INCLUDES],dnl
1173QUAGGA_INCLUDES
1174[#if HAVE_NETINET6_IN6_H
1175#include <netinet6/in6.h>
1176#endif
1177#if HAVE_NETINET_IN6_VAR_H
1178#include <netinet/in6_var.h>
1179#endif
1180#if HAVE_NETINET_ICMP6_H
1181# include <netinet/icmp6.h>
1182#endif
1183#if HAVE_NETINET6_IN6_VAR_H
1184# include <netinet6/in6_var.h>
1185#endif
1186#if HAVE_NETINET6_ND6_H
Hasso Tepperfbf24542007-06-25 19:30:59 +00001187# include <netinet6/nd6.h>
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001188#endif
1189])dnl
1190
Joakim Tjernlundcbcd9bf2009-02-16 09:40:39 +01001191dnl disable doc check
1192if test "${enable_doc}" = "no";then
1193 DOC=""
1194else
1195 DOC="doc"
1196fi
1197
paul7ea487b2003-03-17 02:05:07 +00001198dnl --------------------
1199dnl Daemon disable check
1200dnl --------------------
1201if test "${enable_zebra}" = "no";then
1202 ZEBRA=""
1203else
1204 ZEBRA="zebra"
1205fi
1206
1207if test "${enable_bgpd}" = "no";then
1208 BGPD=""
1209else
1210 BGPD="bgpd"
1211fi
1212
1213if test "${enable_ripd}" = "no";then
1214 RIPD=""
1215else
1216 RIPD="ripd"
1217fi
1218
1219if test "${enable_ospfd}" = "no";then
1220 OSPFD=""
1221else
1222 OSPFD="ospfd"
1223fi
1224
ajsd0199432004-12-22 14:03:52 +00001225if test "${enable_watchquagga}" = "no";then
1226 WATCHQUAGGA=""
1227else
1228 WATCHQUAGGA="watchquagga"
1229fi
1230
paul1ef74ef2003-03-21 15:16:05 +00001231OSPFCLIENT=""
1232if test "${enable_opaque_lsa}" = "yes"; then
1233 if test "${enable_ospfapi}" != "no";then
paul9a569842003-03-28 01:45:13 +00001234 AC_DEFINE(SUPPORT_OSPF_API,,OSPFAPI)
paul1ef74ef2003-03-21 15:16:05 +00001235
1236 if test "${enable_ospfclient}" != "no";then
1237 OSPFCLIENT="ospfclient"
1238 fi
1239 fi
1240
paul7ea487b2003-03-17 02:05:07 +00001241fi
1242
1243case "${enable_ripngd}" in
1244 "yes") RIPNGD="ripngd";;
1245 "no" ) RIPNGD="";;
1246 * ) ;;
1247esac
1248
1249case "${enable_ospf6d}" in
1250 "yes") OSPF6D="ospf6d";;
1251 "no" ) OSPF6D="";;
1252 * ) ;;
1253esac
1254
jardin9e867fe2003-12-23 08:56:18 +00001255case "${enable_isisd}" in
1256 "yes") ISISD="isisd";;
1257 "no" ) ISISD="";;
hassoae399ab2004-09-13 20:22:18 +00001258 * ) ;;
jardin9e867fe2003-12-23 08:56:18 +00001259esac
1260
Greg Troxel97cee872007-08-02 13:36:56 +00001261# XXX Perhaps auto-enable on Solaris, but that's messy for cross builds.
1262case "${enable_solaris}" in
1263 "yes") SOLARIS="solaris";;
1264 "no" ) SOLARIS="";;
1265 * ) ;;
1266esac
1267
paul7ea487b2003-03-17 02:05:07 +00001268if test "${enable_bgp_announce}" = "no";then
Paul Jakma750e8142008-07-22 21:11:48 +00001269 AC_DEFINE(DISABLE_BGP_ANNOUNCE,1,Disable BGP installation to zebra)
1270else
1271 AC_DEFINE(DISABLE_BGP_ANNOUNCE,0,Disable BGP installation to zebra)
paul7ea487b2003-03-17 02:05:07 +00001272fi
1273
Joakim Tjernlundcbcd9bf2009-02-16 09:40:39 +01001274AC_SUBST(DOC)
paul7ea487b2003-03-17 02:05:07 +00001275AC_SUBST(ZEBRA)
1276AC_SUBST(BGPD)
1277AC_SUBST(RIPD)
1278AC_SUBST(RIPNGD)
1279AC_SUBST(OSPFD)
1280AC_SUBST(OSPF6D)
ajsd0199432004-12-22 14:03:52 +00001281AC_SUBST(WATCHQUAGGA)
jardin9e867fe2003-12-23 08:56:18 +00001282AC_SUBST(ISISD)
Greg Troxel97cee872007-08-02 13:36:56 +00001283AC_SUBST(SOLARIS)
paul7ea487b2003-03-17 02:05:07 +00001284AC_SUBST(VTYSH)
1285AC_SUBST(INCLUDES)
1286AC_SUBST(CURSES)
1287AC_SUBST(OSPFCLIENT)
paul1ef74ef2003-03-21 15:16:05 +00001288AC_SUBST(OSPFAPI)
paul7ea487b2003-03-17 02:05:07 +00001289AC_CHECK_LIB(c, inet_ntop, [AC_DEFINE(HAVE_INET_NTOP,,inet_ntop)])
1290AC_CHECK_LIB(c, inet_pton, [AC_DEFINE(HAVE_INET_PTON,,inet_pton)])
1291AC_CHECK_LIB(crypt, crypt)
1292AC_CHECK_LIB(resolv, res_init)
paul7ea487b2003-03-17 02:05:07 +00001293
1294dnl ---------------------------------------------------
1295dnl BSD/OS 4.1 define inet_XtoY function as __inet_XtoY
1296dnl ---------------------------------------------------
paula159ed92003-06-04 11:01:45 +00001297AC_CHECK_FUNC(__inet_ntop, AC_DEFINE(HAVE_INET_NTOP,,__inet_ntop))
1298AC_CHECK_FUNC(__inet_pton, AC_DEFINE(HAVE_INET_PTON,,__inet_pton))
1299AC_CHECK_FUNC(__inet_aton, AC_DEFINE(HAVE_INET_ATON,,__inet_aton))
paul7ea487b2003-03-17 02:05:07 +00001300
1301dnl ---------------------------
Jeremy Jackson25f45882009-01-12 16:06:12 -05001302dnl check system has PCRE regexp
1303dnl ---------------------------
1304if test "x$enable_pcreposix" = "xyes"; then
1305 AC_CHECK_LIB(pcreposix, pcreposix_regexec, ,[enable_pcreposix=no
1306 AC_MSG_WARN([*** falling back to other regex library ***]) ])
1307fi
1308
1309if test "x$enable_pcreposix" != "xyes"; then
1310dnl ---------------------------
paul7ea487b2003-03-17 02:05:07 +00001311dnl check system has GNU regexp
1312dnl ---------------------------
Jeremy Jackson25f45882009-01-12 16:06:12 -05001313AC_MSG_CHECKING(whether system has GNU regex)
paul7ea487b2003-03-17 02:05:07 +00001314AC_CHECK_LIB(c, regexec,
1315[AC_DEFINE(HAVE_GNU_REGEX,,GNU regexp library)
1316 LIB_REGEX=""],
1317[LIB_REGEX="regex.o"])
Jeremy Jackson25f45882009-01-12 16:06:12 -05001318fi
1319AC_SUBST(HAVE_LIBPCREPOSIX)
paul7ea487b2003-03-17 02:05:07 +00001320AC_SUBST(LIB_REGEX)
1321
1322dnl ------------------
paulb1fc9ac2006-01-31 10:09:27 +00001323dnl check Net-SNMP library
paul7ea487b2003-03-17 02:05:07 +00001324dnl ------------------
paulb1fc9ac2006-01-31 10:09:27 +00001325if test "${enable_snmp}" = "yes"; then
Joakim Tjernlundfb62a3c2008-05-13 20:03:32 +02001326 if test "$with_crypto" != "no"; then
1327 LIBS="${LIBS} -lcrypto";
1328 fi
paulb1fc9ac2006-01-31 10:09:27 +00001329 AC_CHECK_LIB(netsnmp, asn_parse_int,
1330 [AC_DEFINE(HAVE_NETSNMP,,Net SNMP)
1331 AC_DEFINE(HAVE_SNMP,,SNMP)
1332 LIBS="${LIBS} -lnetsnmp"],
1333 [AC_MSG_ERROR([--enable-snmp given, but cannot find support for SNMP])])
Joakim Tjernlundfb62a3c2008-05-13 20:03:32 +02001334
1335 AC_CHECK_HEADER([net-snmp/net-snmp-config.h],
1336 [],
1337 [AC_MSG_ERROR([--enable-snmp given, but cannot find net-snmp-config.h])],
1338 QUAGGA_INCLUDES)
paulb1fc9ac2006-01-31 10:09:27 +00001339 AC_SUBST(SNMP_INCLUDES)
paul7ea487b2003-03-17 02:05:07 +00001340fi
1341
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001342dnl ---------------------------
1343dnl sockaddr and netinet checks
1344dnl ---------------------------
1345AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
1346 struct sockaddr_in6, struct sockaddr_un, struct sockaddr_dl,
1347 socklen_t,
1348 struct ifaliasreq, struct if6_aliasreq, struct in6_aliasreq,
1349 struct nd_opt_adv_interval, struct rt_addrinfo,
Paul Jakma11770e12007-06-22 16:14:42 +00001350 struct nd_opt_homeagent_info, struct nd_opt_adv_interval],
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001351 [], [], QUAGGA_INCLUDES)
paul7ea487b2003-03-17 02:05:07 +00001352
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001353AC_CHECK_MEMBERS([struct sockaddr.sa_len,
1354 struct sockaddr_in.sin_len, struct sockaddr_un.sun_len,
1355 struct sockaddr_in6.sin6_scope_id,
1356 struct if6_aliasreq.ifra_lifetime,
1357 struct nd_opt_adv_interval.nd_opt_ai_type],
1358 [], [], QUAGGA_INCLUDES)
hasso71c0fb52003-05-25 20:18:13 +00001359
paul7ea487b2003-03-17 02:05:07 +00001360dnl ---------------------------
Paul Jakma11770e12007-06-22 16:14:42 +00001361dnl IRDP/pktinfo/icmphdr checks
paul7ea487b2003-03-17 02:05:07 +00001362dnl ---------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001363AC_CHECK_TYPES([struct in_pktinfo],
Paul Jakma11770e12007-06-22 16:14:42 +00001364 [AC_CHECK_TYPES([struct icmphdr],
1365 [if test "${enable_irdp}" != "no"; then
1366 AC_DEFINE(HAVE_IRDP,, IRDP)
1367 fi],
1368 [if test "${enable_irdp}" = "yes"; then
1369 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1370 fi], [QUAGGA_INCLUDES])],
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001371 [if test "${enable_irdp}" = "yes"; then
1372 AC_MSG_ERROR(['IRDP requires in_pktinfo at the moment!'])
1373 fi], [QUAGGA_INCLUDES])
vincent29c4c9b2005-03-25 13:05:47 +00001374
paul7ea487b2003-03-17 02:05:07 +00001375dnl --------------------------------------
1376dnl checking for getrusage struct and call
1377dnl --------------------------------------
1378AC_MSG_CHECKING(whether getrusage is available)
1379AC_TRY_COMPILE([#include <sys/resource.h>
1380],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);],
1381[AC_MSG_RESULT(yes)
1382 AC_DEFINE(HAVE_RUSAGE,,rusage)],
1383 AC_MSG_RESULT(no))
1384
Stephen Hemmingerc4376c92009-05-28 15:29:10 -07001385dnl --------------------------------------
1386dnl checking for clock_time monotonic struct and call
1387dnl --------------------------------------
Paul Jakma6511cab2009-06-18 17:38:01 +01001388AC_CHECK_DECL(CLOCK_MONOTONIC,
1389 [AC_CHECK_LIB(rt, clock_gettime, [LIBS="$LIBS -lrt"])
Dmitry Tejblum9964fcf2009-11-05 16:50:36 +03001390 AC_DEFINE(HAVE_CLOCK_MONOTONIC,, Have monotonic clock)
Paul Jakma6511cab2009-06-18 17:38:01 +01001391], [AC_MSG_RESULT(no)], [QUAGGA_INCLUDES])
Stephen Hemmingerc4376c92009-05-28 15:29:10 -07001392
pauledd7c242003-06-04 13:59:38 +00001393dnl -------------------
1394dnl capabilities checks
1395dnl -------------------
hasso41d3fc92004-04-06 11:59:00 +00001396if test "${enable_capabilities}" != "no"; then
1397 AC_MSG_CHECKING(whether prctl PR_SET_KEEPCAPS is available)
1398 AC_TRY_COMPILE([#include <sys/prctl.h>],[prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);],
1399 [AC_MSG_RESULT(yes)
1400 AC_DEFINE(HAVE_PR_SET_KEEPCAPS,,prctl)
1401 quagga_ac_keepcaps="yes"],
1402 AC_MSG_RESULT(no)
pauledd7c242003-06-04 13:59:38 +00001403 )
hasso41d3fc92004-04-06 11:59:00 +00001404 if test x"${quagga_ac_keepcaps}" = x"yes"; then
1405 AC_CHECK_HEADERS(sys/capability.h)
1406 fi
1407 if test x"${ac_cv_header_sys_capability_h}" = x"yes"; then
1408 AC_CHECK_LIB(cap, cap_init,
1409 [AC_DEFINE(HAVE_LCAPS,1,Capabilities)
1410 LIBCAP="-lcap"
paulceacedb2005-09-29 14:39:32 +00001411 quagga_ac_lcaps="yes"]
hasso41d3fc92004-04-06 11:59:00 +00001412 )
paulceacedb2005-09-29 14:39:32 +00001413 else
1414 AC_CHECK_HEADERS(priv.h,
1415 [AC_MSG_CHECKING(Solaris style privileges are available)
1416 AC_TRY_COMPILE([#include <priv.h>],[getpflags(PRIV_AWARE);],
1417 [AC_MSG_RESULT(yes)
1418 AC_DEFINE(HAVE_SOLARIS_CAPABILITIES,1,getpflags)
1419 quagga_ac_scaps="yes"],
1420 AC_MSG_RESULT(no)
1421 )
1422 ]
1423 )
1424 fi
1425 if test x"${quagga_ac_scaps}" = x"yes" \
1426 -o x"${quagga_ac_lcaps}" = x"yes"; then
1427 AC_DEFINE(HAVE_CAPABILITIES,1,capabilities)
hasso41d3fc92004-04-06 11:59:00 +00001428 fi
pauledd7c242003-06-04 13:59:38 +00001429fi
1430AC_SUBST(LIBCAP)
1431
paulfb2d1502003-06-04 09:40:54 +00001432dnl ---------------------------
1433dnl check for glibc 'backtrace'
1434dnl ---------------------------
1435if test "${glibc}" = "yes"; then
Paul Jakmafb66b292006-05-28 08:26:15 +00001436 AC_CHECK_HEADER([execinfo.h],
1437 [AC_CHECK_FUNC([backtrace],
1438 [AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
1439 AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
1440 ])
1441 ])
paulfb2d1502003-06-04 09:40:54 +00001442fi
1443
Paul Jakma41be32b2006-03-30 13:53:59 +00001444dnl -----------------------------------------
1445dnl check for malloc mallinfo struct and call
1446dnl this must try and link using LIBS, in
1447dnl order to check no alternative allocator
1448dnl has been specified, which might not provide
1449dnl mallinfo, e.g. such as Umem on Solaris.
1450dnl -----------------------------------------
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001451AC_CHECK_HEADER([malloc.h],
Paul Jakma41be32b2006-03-30 13:53:59 +00001452 [AC_MSG_CHECKING(whether mallinfo is available)
1453 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]],
1454 [[struct mallinfo ac_x; ac_x = mallinfo ();]])],
1455 [AC_MSG_RESULT(yes)
1456 AC_DEFINE(HAVE_MALLINFO,,mallinfo)],
1457 AC_MSG_RESULT(no)
1458 )
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001459 ], [], QUAGGA_INCLUDES)
Paul Jakma41be32b2006-03-30 13:53:59 +00001460
paul408ad942003-05-20 00:03:33 +00001461dnl ----------
1462dnl configure date
1463dnl ----------
1464CONFDATE=`date '+%Y%m%d'`
1465AC_SUBST(CONFDATE)
1466
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001467dnl Conditionally enable PIE support for GNU toolchains.
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001468AC_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 +01001469if test "$enable_pie" != "no"; then
Paul P Komkoff Jr46bc0e42008-08-13 16:17:04 +01001470 AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
1471 save_CFLAGS=$CFLAGS
1472 save_LDFLAGS=$LDFLAGS
1473 CFLAGS="$CFLAGS -fPIE"
1474 LDFLAGS="$LDFLAGS -pie"
1475 AC_LINK_IFELSE([AC_LANG_SOURCE([[static int foo[30000]; int main () { return 0; }]])],
1476 [ap_cv_cc_pie=yes], [ap_cv_cc_pie=no]
1477 )
1478 CFLAGS=$save_CFLAGS
1479 LDFLAGS=$save_LDFLAGS
1480 ])
1481 if test "$ap_cv_cc_pie" = "yes"; then
1482 PICFLAGS="-fPIE"
1483 PILDFLAGS="-pie"
1484 fi
1485fi
1486
1487AC_SUBST(PICFLAGS)
1488AC_SUBST(PILDFLAGS)
1489
paul7ea487b2003-03-17 02:05:07 +00001490dnl ------------------------------
paula159ed92003-06-04 11:01:45 +00001491dnl set paths for state directory
paul23bd12c2003-04-07 06:11:09 +00001492dnl ------------------------------
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001493AC_MSG_CHECKING(directory to use for state file)
paul23bd12c2003-04-07 06:11:09 +00001494if test "${prefix}" = "NONE"; then
paule8f29842003-08-12 13:08:31 +00001495 quagga_statedir_prefix="";
paul23bd12c2003-04-07 06:11:09 +00001496else
paule8f29842003-08-12 13:08:31 +00001497 quagga_statedir_prefix=${prefix}
paul23bd12c2003-04-07 06:11:09 +00001498fi
1499if test "${localstatedir}" = '${prefix}/var'; then
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001500 for QUAGGA_STATE_DIR in ${quagga_statedir_prefix}/var/run dnl
paule8f29842003-08-12 13:08:31 +00001501 ${quagga_statedir_prefix}/var/adm dnl
1502 ${quagga_statedir_prefix}/etc dnl
paula159ed92003-06-04 11:01:45 +00001503 /var/run dnl
1504 /var/adm dnl
1505 /etc dnl
1506 /dev/null;
paul23bd12c2003-04-07 06:11:09 +00001507 do
paule8f29842003-08-12 13:08:31 +00001508 test -d $QUAGGA_STATE_DIR && break
paul23bd12c2003-04-07 06:11:09 +00001509 done
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001510 quagga_statedir=$QUAGGA_STATE_DIR
paul23bd12c2003-04-07 06:11:09 +00001511else
paule8f29842003-08-12 13:08:31 +00001512 quagga_statedir=${localstatedir}
paul23bd12c2003-04-07 06:11:09 +00001513fi
paule8f29842003-08-12 13:08:31 +00001514if test $quagga_statedir = "/dev/null"; then
paula159ed92003-06-04 11:01:45 +00001515 AC_MSG_ERROR('STATE DIRECTORY NOT FOUND! FIX OR SPECIFY --localstatedir!')
1516fi
Jeremy Jacksone84999d2009-01-21 20:29:39 -05001517AC_MSG_RESULT(${quagga_statedir})
1518AC_SUBST(quagga_statedir)
paula159ed92003-06-04 11:01:45 +00001519
paule8f29842003-08-12 13:08:31 +00001520AC_DEFINE_UNQUOTED(PATH_ZEBRA_PID, "$quagga_statedir/zebra.pid",zebra PID)
1521AC_DEFINE_UNQUOTED(PATH_RIPD_PID, "$quagga_statedir/ripd.pid",ripd PID)
1522AC_DEFINE_UNQUOTED(PATH_RIPNGD_PID, "$quagga_statedir/ripngd.pid",ripngd PID)
1523AC_DEFINE_UNQUOTED(PATH_BGPD_PID, "$quagga_statedir/bgpd.pid",bgpd PID)
1524AC_DEFINE_UNQUOTED(PATH_OSPFD_PID, "$quagga_statedir/ospfd.pid",ospfd PID)
1525AC_DEFINE_UNQUOTED(PATH_OSPF6D_PID, "$quagga_statedir/ospf6d.pid",ospf6d PID)
jardin9e867fe2003-12-23 08:56:18 +00001526AC_DEFINE_UNQUOTED(PATH_ISISD_PID, "$quagga_statedir/isisd.pid",isisd PID)
ajsd0199432004-12-22 14:03:52 +00001527AC_DEFINE_UNQUOTED(PATH_WATCHQUAGGA_PID, "$quagga_statedir/watchquagga.pid",watchquagga PID)
paule8f29842003-08-12 13:08:31 +00001528AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$quagga_statedir/zserv.api",zebra api socket)
1529AC_DEFINE_UNQUOTED(ZEBRA_VTYSH_PATH, "$quagga_statedir/zebra.vty",zebra vty socket)
1530AC_DEFINE_UNQUOTED(RIP_VTYSH_PATH, "$quagga_statedir/ripd.vty",rip vty socket)
1531AC_DEFINE_UNQUOTED(RIPNG_VTYSH_PATH, "$quagga_statedir/ripngd.vty",ripng vty socket)
1532AC_DEFINE_UNQUOTED(BGP_VTYSH_PATH, "$quagga_statedir/bgpd.vty",bgpd vty socket)
1533AC_DEFINE_UNQUOTED(OSPF_VTYSH_PATH, "$quagga_statedir/ospfd.vty",ospfd vty socket)
1534AC_DEFINE_UNQUOTED(OSPF6_VTYSH_PATH, "$quagga_statedir/ospf6d.vty",ospf6d vty socket)
jardin9e867fe2003-12-23 08:56:18 +00001535AC_DEFINE_UNQUOTED(ISIS_VTYSH_PATH, "$quagga_statedir/isisd.vty",isisd vty socket)
ajs515210b2004-12-22 15:35:12 +00001536AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$quagga_statedir",daemon vty directory)
paul7ea487b2003-03-17 02:05:07 +00001537
paul1eb8ef22005-04-07 07:30:20 +00001538dnl -------------------------------
1539dnl Quagga sources should always be
1540dnl current wrt interfaces. Dont
1541dnl allow deprecated interfaces to
1542dnl be exposed.
1543dnl -------------------------------
1544AC_DEFINE(QUAGGA_NO_DEPRECATED_INTERFACES, 1, Hide deprecated interfaces)
1545
paul7ea487b2003-03-17 02:05:07 +00001546dnl ---------------------------
1547dnl Check htonl works correctly
1548dnl ---------------------------
1549AC_MSG_CHECKING(for working htonl)
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001550AC_CACHE_VAL(ac_cv_htonl_works,
1551 [AC_LINK_IFELSE([AC_LANG_PROGRAM([QUAGGA_INCLUDES],[htonl (0);])],
1552 [ac_cv_htonl_works=yes], [ac_cv_htonl_works=no])
1553 ]
1554)
paul7ea487b2003-03-17 02:05:07 +00001555AC_MSG_RESULT($ac_cv_htonl_works)
1556
paul14c17fd2004-11-07 22:34:23 +00001557AC_CONFIG_FILES([Makefile lib/Makefile zebra/Makefile ripd/Makefile
ajsd0199432004-12-22 14:03:52 +00001558 ripngd/Makefile bgpd/Makefile ospfd/Makefile watchquagga/Makefile
jardin9e867fe2003-12-23 08:56:18 +00001559 ospf6d/Makefile isisd/Makefile vtysh/Makefile doc/Makefile
paul14c17fd2004-11-07 22:34:23 +00001560 ospfclient/Makefile tests/Makefile m4/Makefile redhat/Makefile
gdt69f1fc22004-08-27 15:57:35 +00001561 pkgsrc/Makefile
paul670bbf12004-11-12 09:05:00 +00001562 redhat/quagga.spec
gdtb7a97f82004-07-23 16:23:56 +00001563 lib/version.h
paul14c17fd2004-11-07 22:34:23 +00001564 doc/defines.texi
hassof695b012005-04-02 19:03:39 +00001565 isisd/topology/Makefile
gdtcbd04082004-08-31 18:16:36 +00001566 pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh
paulf31293a2004-11-12 09:27:04 +00001567 pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh])
paul26275b02005-04-11 07:10:47 +00001568AC_CONFIG_FILES([solaris/Makefile])
1569
paul670bbf12004-11-12 09:05:00 +00001570AC_CONFIG_FILES([vtysh/extract.pl],[chmod +x vtysh/extract.pl])
hasso48577192004-11-19 06:41:49 +00001571## Hack, but working solution to avoid rebuilding of quagga.info.
1572## It's already in CVS until texinfo 4.7 is more common.
paul14c17fd2004-11-07 22:34:23 +00001573AC_OUTPUT
paul7ea487b2003-03-17 02:05:07 +00001574
1575echo "
hassoc89f6492004-08-26 12:21:28 +00001576Quagga configuration
1577--------------------
1578quagga version : ${PACKAGE_VERSION}
David Wardcdb99502009-12-03 20:22:47 +03001579host operating system : ${host_os}
paul7ea487b2003-03-17 02:05:07 +00001580source code location : ${srcdir}
1581compiler : ${CC}
1582compiler flags : ${CFLAGS}
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001583make : ${MAKE-make}
hasso2d582282005-03-28 15:29:07 +00001584includes : ${INCLUDES} ${SNMP_INCLUDES}
Paul Jakma6f0e3f62007-05-10 02:38:51 +00001585linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM}
paule8f29842003-08-12 13:08:31 +00001586state file directory : ${quagga_statedir}
pauldc7a2bf2003-10-22 00:07:44 +00001587config file directory : `eval echo \`echo ${sysconfdir}\``
gdtd6b72f72003-12-03 17:24:27 +00001588example directory : `eval echo \`echo ${exampledir}\``
paul8d4aee52003-06-06 00:30:35 +00001589user to run as : ${enable_user}
1590group to run as : ${enable_group}
1591group for vty sockets : ${enable_vty_group}
gdtaa593d52003-12-22 20:15:53 +00001592config file mask : ${enable_configfile_mask}
1593log file mask : ${enable_logfile_mask}
pauldc7a2bf2003-10-22 00:07:44 +00001594
1595The above user and group must have read/write access to the state file
Paul Jakma105b8232006-05-28 08:02:41 +00001596directory and to the config files in the config file directory."
1597
1598if test x"$quagga_cv_gnu_make" = x"no"; then echo "
1599Warning: The ${MAKE-make} programme detected, either in your path or
1600via the MAKE variable, is not GNU Make. GNU make may be installed as
1601gmake on some systems. and is required to complete a build of Quagga
1602" > /dev/stderr
1603fi