version 1.1.1.3, 2012/10/09 09:22:28
|
version 1.1.1.4, 2013/07/21 23:54:37
|
Line 7
|
Line 7
|
## |
## |
AC_PREREQ(2.53) |
AC_PREREQ(2.53) |
|
|
AC_INIT(Quagga, 0.99.21, [https://bugzilla.quagga.net]) | AC_INIT(Quagga, 0.99.22, [https://bugzilla.quagga.net]) |
AC_CONFIG_SRCDIR(lib/zebra.h) |
AC_CONFIG_SRCDIR(lib/zebra.h) |
AC_CONFIG_MACRO_DIR([m4]) |
AC_CONFIG_MACRO_DIR([m4]) |
|
|
Line 19 AC_CANONICAL_HOST()
|
Line 19 AC_CANONICAL_HOST()
|
AC_CANONICAL_TARGET() |
AC_CANONICAL_TARGET() |
|
|
AM_INIT_AUTOMAKE(1.6) |
AM_INIT_AUTOMAKE(1.6) |
AM_CONFIG_HEADER(config.h) | AC_CONFIG_HEADERS(config.h) |
|
|
|
AC_PATH_PROG(PERL, perl) |
AC_CHECK_PROG([GAWK],[gawk],[gawk],[not-in-PATH]) |
AC_CHECK_PROG([GAWK],[gawk],[gawk],[not-in-PATH]) |
if test "x$GAWK" = "xnot-in-PATH" ; then |
if test "x$GAWK" = "xnot-in-PATH" ; then |
AC_MSG_ERROR([GNU awk is required for lib/memtype.h made by memtypes.awk. |
AC_MSG_ERROR([GNU awk is required for lib/memtype.h made by memtypes.awk. |
Line 128 AC_MSG_CHECKING([whether to set a default CFLAGS])
|
Line 129 AC_MSG_CHECKING([whether to set a default CFLAGS])
|
if test "x${cflags_specified}" = "x" ; then |
if test "x${cflags_specified}" = "x" ; then |
case ${COMPILER} in |
case ${COMPILER} in |
"ICC") |
"ICC") |
CFLAGS="-Os -g -Wall -wd 279,869,981" | CFLAGS="-Os -g -Wall" |
AC_MSG_RESULT([Intel default]) |
AC_MSG_RESULT([Intel default]) |
;; |
;; |
"GCC") |
"GCC") |
Line 189 AC_PROG_LIBTOOL
|
Line 190 AC_PROG_LIBTOOL
|
dnl ---------------------- |
dnl ---------------------- |
dnl Packages configuration |
dnl Packages configuration |
dnl ---------------------- |
dnl ---------------------- |
|
AC_ARG_WITH(pkg-extra-version, |
|
AS_HELP_STRING([--with-pkg-extra-version=VER], [add extra version field, for packagers/distributions]), |
|
[EXTRAVERSION=$withval],) |
|
AC_ARG_WITH(pkg-git-version, |
|
AS_HELP_STRING([--with-pkg-git-version], [add git information to MOTD and build version string]), |
|
[ test "x$withval" != "xno" && with_pkg_git_version="yes" ]) |
AC_ARG_ENABLE(vtysh, |
AC_ARG_ENABLE(vtysh, |
[ --enable-vtysh include integrated vty shell for Quagga]) |
[ --enable-vtysh include integrated vty shell for Quagga]) |
AC_ARG_ENABLE(ipv6, |
AC_ARG_ENABLE(ipv6, |
[ --disable-ipv6 turn off IPv6 related features and daemons]) |
[ --disable-ipv6 turn off IPv6 related features and daemons]) |
AC_ARG_ENABLE(doc, |
AC_ARG_ENABLE(doc, |
[ --disable-doc do not build docs]) |
[ --disable-doc do not build docs]) |
|
AC_ARG_ENABLE(tests, |
|
[ --disable-tests do not build tests]) |
AC_ARG_ENABLE(zebra, |
AC_ARG_ENABLE(zebra, |
[ --disable-zebra do not build zebra daemon]) |
[ --disable-zebra do not build zebra daemon]) |
AC_ARG_ENABLE(bgpd, |
AC_ARG_ENABLE(bgpd, |
Line 221 AC_ARG_ENABLE(netlink,
|
Line 230 AC_ARG_ENABLE(netlink,
|
[ --enable-netlink force to use Linux netlink interface]) |
[ --enable-netlink force to use Linux netlink interface]) |
AC_ARG_ENABLE(broken-aliases, |
AC_ARG_ENABLE(broken-aliases, |
[ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X]) |
[ --enable-broken-aliases enable aliases as distinct interfaces for Linux 2.2.X]) |
AC_ARG_WITH(crypto, |
|
[ --without-crypto do not use libcrypto in SNMP]) |
|
AC_ARG_ENABLE(snmp, |
AC_ARG_ENABLE(snmp, |
[ --enable-snmp enable SNMP support]) | [ --enable-snmp=ARG enable SNMP support (smux or agentx)]) |
AC_ARG_WITH(libpam, |
AC_ARG_WITH(libpam, |
[ --with-libpam use libpam for PAM support in vtysh]) |
[ --with-libpam use libpam for PAM support in vtysh]) |
AC_ARG_ENABLE(tcp-zebra, |
AC_ARG_ENABLE(tcp-zebra, |
Line 259 AC_ARG_ENABLE(isis_topology,
|
Line 266 AC_ARG_ENABLE(isis_topology,
|
[ --enable-isis-topology enable IS-IS topology generator]) |
[ --enable-isis-topology enable IS-IS topology generator]) |
AC_ARG_ENABLE(capabilities, |
AC_ARG_ENABLE(capabilities, |
[ --disable-capabilities disable using POSIX capabilities]) |
[ --disable-capabilities disable using POSIX capabilities]) |
|
AC_ARG_ENABLE(rusage, |
|
[ --disable-rusage disable using getrusage]) |
AC_ARG_ENABLE(gcc_ultra_verbose, |
AC_ARG_ENABLE(gcc_ultra_verbose, |
[ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings]) |
[ --enable-gcc-ultra-verbose enable ultra verbose GCC warnings]) |
AC_ARG_ENABLE(linux24_tcp_md5, |
AC_ARG_ENABLE(linux24_tcp_md5, |
Line 269 AC_ARG_ENABLE(time-check,
|
Line 278 AC_ARG_ENABLE(time-check,
|
[ --disable-time-check disable slow thread warning messages]) |
[ --disable-time-check disable slow thread warning messages]) |
AC_ARG_ENABLE(pcreposix, |
AC_ARG_ENABLE(pcreposix, |
[ --enable-pcreposix enable using PCRE Posix libs for regex functions]) |
[ --enable-pcreposix enable using PCRE Posix libs for regex functions]) |
|
AC_ARG_ENABLE(fpm, |
|
[ --enable-fpm enable Forwarding Plane Manager support]) |
|
|
if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then |
if test x"${enable_gcc_ultra_verbose}" = x"yes" ; then |
CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes" |
CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes" |
Line 289 if test x"${enable_time_check}" != x"no" ; then
|
Line 300 if test x"${enable_time_check}" != x"no" ; then
|
fi |
fi |
fi |
fi |
|
|
|
if test "${enable_fpm}" = "yes"; then |
|
AC_DEFINE(HAVE_FPM,,Forwarding Plane Manager support) |
|
fi |
|
|
if test "${enable_broken_aliases}" = "yes"; then |
if test "${enable_broken_aliases}" = "yes"; then |
if test "${enable_netlink}" = "yes" |
if test "${enable_netlink}" = "yes" |
then |
then |
Line 329 fi
|
Line 344 fi
|
|
|
if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then |
if test "${enable_isisd}" = "yes" && test "${enable_isis_topology}" = yes; then |
AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code) |
AC_DEFINE(TOPOLOGY_GENERATE,,Enable IS-IS topology generator code) |
ISIS_TOPOLOGY_INCLUDES="-I./topology" | ISIS_TOPOLOGY_INCLUDES="-I\$(srcdir)/topology" |
ISIS_TOPOLOGY_DIR="topology" |
ISIS_TOPOLOGY_DIR="topology" |
ISIS_TOPOLOGY_LIB="./topology/libtopology.a" |
ISIS_TOPOLOGY_LIB="./topology/libtopology.a" |
fi |
fi |
Line 384 esac
|
Line 399 esac
|
|
|
AC_SUBST(MULTIPATH_NUM) |
AC_SUBST(MULTIPATH_NUM) |
|
|
|
dnl ----------------------------------- |
|
dnl Add extra version string to package |
|
dnl name, string and version fields. |
|
dnl ----------------------------------- |
|
if test "x${EXTRAVERSION}" != "x" ; then |
|
VERSION="${VERSION}${EXTRAVERSION}" |
|
PACKAGE_VERSION="${PACKAGE_VERSION}${EXTRAVERSION}" |
|
PACKAGE_STRING="${PACKAGE_STRING}${EXTRAVERSION}" |
|
fi |
|
|
|
if test "x$with_pkg_git_version" = "xyes"; then |
|
if test -d "${srcdir}/.git"; then |
|
AC_DEFINE(GIT_VERSION, [1], [include git version info]) |
|
else with_pkg_git_version="no" |
|
AC_MSG_WARN([--with-pkg-git-version given, but this is not a git checkout]) |
|
fi |
|
fi |
|
AM_CONDITIONAL([GIT_VERSION], [test "x$with_pkg_git_version" = "xyes"]) |
|
|
dnl ------------------------------------ |
dnl ------------------------------------ |
dnl Check C keywords and standard types |
dnl Check C keywords and standard types |
dnl ------------------------------------ |
dnl ------------------------------------ |
Line 438 m4_define([QUAGGA_INCLUDES],
|
Line 472 m4_define([QUAGGA_INCLUDES],
|
#if HAVE_SYS_SOCKET_H |
#if HAVE_SYS_SOCKET_H |
# include <sys/socket.h> |
# include <sys/socket.h> |
#endif |
#endif |
|
#ifdef __APPLE__ |
|
# define __APPLE_USE_RFC_3542 |
|
#endif |
#if HAVE_NETINET_IN_H |
#if HAVE_NETINET_IN_H |
# include <netinet/in.h> |
# include <netinet/in.h> |
#endif |
#endif |
Line 592 dnl ---------------------
|
Line 629 dnl ---------------------
|
case "${enable_vtysh}" in |
case "${enable_vtysh}" in |
"yes") VTYSH="vtysh"; |
"yes") VTYSH="vtysh"; |
AC_DEFINE(VTYSH,,VTY shell) |
AC_DEFINE(VTYSH,,VTY shell) |
AC_PATH_PROG(PERL, perl) |
|
dnl Vtysh uses libreadline, which looks for termcap functions at |
dnl Vtysh uses libreadline, which looks for termcap functions at |
dnl configure time. We follow readlines search order. |
dnl configure time. We follow readlines search order. |
dnl The required procedures are in libtermcap on NetBSD, in |
dnl The required procedures are in libtermcap on NetBSD, in |
Line 815 fi
|
Line 851 fi
|
AC_SUBST(RT_METHOD) |
AC_SUBST(RT_METHOD) |
AC_SUBST(KERNEL_METHOD) |
AC_SUBST(KERNEL_METHOD) |
AC_SUBST(OTHER_METHOD) |
AC_SUBST(OTHER_METHOD) |
|
AM_CONDITIONAL([HAVE_NETLINK], [test "x$netlink" = "xyes"]) |
|
|
dnl -------------------------- |
dnl -------------------------- |
dnl Determine IS-IS I/O method |
dnl Determine IS-IS I/O method |
Line 946 AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [], []
|
Line 983 AC_CHECK_MEMBERS([struct ip_mreqn.imr_ifindex], [], []
|
AC_MSG_CHECKING([for BSD struct ip_mreq hack]) |
AC_MSG_CHECKING([for BSD struct ip_mreq hack]) |
AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H |
AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H |
#include <sys/param.h> |
#include <sys/param.h> |
#endif],[#if (defined(__FreeBSD__) && ((__FreeBSD_version >= 500022 && __FreeBSD_version < 700000) || (__FreeBSD_version < 500000 && __FreeBSD_version >= 440000))) || (defined(__NetBSD__) && defined(__NetBSD_Version__) && __NetBSD_Version__ >= 106010000) | #endif],[#if (defined(__FreeBSD__) && ((__FreeBSD_version >= 500022 && __FreeBSD_version < 700000) || (__FreeBSD_version < 500000 && __FreeBSD_version >= 440000))) || (defined(__NetBSD__) && defined(__NetBSD_Version__) && __NetBSD_Version__ >= 106010000) || defined(__OpenBSD__) || defined(__APPLE__) |
return (0); |
return (0); |
#else |
#else |
#error No support for BSD struct ip_mreq hack detected |
#error No support for BSD struct ip_mreq hack detected |
Line 979 AC_CHECK_HEADER([net/if.h],
|
Line 1016 AC_CHECK_HEADER([net/if.h],
|
QUAGGA_INCLUDES)], |
QUAGGA_INCLUDES)], |
[], QUAGGA_INCLUDES ) |
[], QUAGGA_INCLUDES ) |
|
|
|
dnl --------------------------------------------------------------- |
|
dnl Additional, newer way to check link-state using ifi_link_state. |
|
dnl Not available in all BSD's when ifmediareq available |
|
dnl --------------------------------------------------------------- |
|
AC_CHECK_HEADER([net/if.h], |
|
AC_CHECK_MEMBERS([struct if_data.ifi_link_state], |
|
AC_DEFINE(HAVE_BSD_IFI_LINK_STATE,,[BSD ifi_link_state available]), |
|
[], QUAGGA_INCLUDES), |
|
,) |
|
|
dnl ------------------------ |
dnl ------------------------ |
dnl TCP_MD5SIG socket option |
dnl TCP_MD5SIG socket option |
dnl ------------------------ |
dnl ------------------------ |
Line 1221 else
|
Line 1268 else
|
DOC="doc" |
DOC="doc" |
fi |
fi |
|
|
|
dnl can't use TESTS as name, that's special with automake |
|
if test "${enable_tests}" = "no";then |
|
BUILD_TESTS="" |
|
else |
|
BUILD_TESTS="tests" |
|
fi |
|
|
dnl -------------------- |
dnl -------------------- |
dnl Daemon disable check |
dnl Daemon disable check |
dnl -------------------- |
dnl -------------------- |
Line 1314 else
|
Line 1368 else
|
fi |
fi |
|
|
AC_SUBST(DOC) |
AC_SUBST(DOC) |
|
AC_SUBST(BUILD_TESTS) |
AC_SUBST(ZEBRA) |
AC_SUBST(ZEBRA) |
AC_SUBST(BGPD) |
AC_SUBST(BGPD) |
AC_SUBST(RIPD) |
AC_SUBST(RIPD) |
Line 1365 AC_SUBST(LIB_REGEX)
|
Line 1420 AC_SUBST(LIB_REGEX)
|
dnl ------------------ |
dnl ------------------ |
dnl check Net-SNMP library |
dnl check Net-SNMP library |
dnl ------------------ |
dnl ------------------ |
if test "${enable_snmp}" = "yes"; then | if test "${enable_snmp}" != ""; then |
if test "$with_crypto" != "no"; then | AC_PATH_TOOL([NETSNMP_CONFIG], [net-snmp-config], [no]) |
LIBS="${LIBS} -lcrypto"; | if test x"$NETSNMP_CONFIG" = x"no"; then |
fi | AC_MSG_ERROR([--enable-snmp given but unable to find net-snmp-config]) |
AC_CHECK_LIB(netsnmp, asn_parse_int, | fi |
[AC_DEFINE(HAVE_NETSNMP,,Net SNMP) | LIBS="$LIBS `${NETSNMP_CONFIG} --agent-libs`" |
AC_DEFINE(HAVE_SNMP,,SNMP) | CFLAGS="`${NETSNMP_CONFIG} --base-cflags` $CFLAGS" |
LIBS="${LIBS} -lnetsnmp"], | AC_MSG_CHECKING([whether we can link to Net-SNMP]) |
[AC_MSG_ERROR([--enable-snmp given, but cannot find support for SNMP])]) | AC_LINK_IFELSE([AC_LANG_PROGRAM([ |
| int main(void); |
AC_CHECK_HEADER([net-snmp/net-snmp-config.h], | ], |
[], | [ |
[AC_MSG_ERROR([--enable-snmp given, but cannot find net-snmp-config.h])], | { |
QUAGGA_INCLUDES) | return 0; |
AC_SUBST(SNMP_INCLUDES) | } |
| ])],[AC_MSG_RESULT(yes)],[ |
| AC_MSG_RESULT(no) |
| AC_MSG_ERROR([--enable-snmp given but not usable])]) |
| AC_DEFINE(HAVE_SNMP,,SNMP) |
| case "${enable_snmp}" in |
| yes) |
| SNMP_METHOD=agentx |
| ;; |
| smux|agentx) |
| SNMP_METHOD="${enable_snmp}" |
| ;; |
| *) |
| AC_MSG_ERROR([--enable-snmp given with an unknown method (${enable_snmp}). Use smux or agentx]) |
| ;; |
| esac |
| AH_TEMPLATE([SNMP_SMUX], [Use SNMP SMUX to interface with snmpd]) |
| AH_TEMPLATE([SNMP_AGENTX], [Use SNMP AgentX to interface with snmpd]) |
| AC_DEFINE_UNQUOTED(AS_TR_CPP(SNMP_${SNMP_METHOD}),,SNMP method to interface with snmpd) |
fi |
fi |
|
|
dnl --------------------------- |
dnl --------------------------- |
Line 1396 AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
|
Line 1469 AC_CHECK_TYPES([struct sockaddr, struct sockaddr_in,
|
AC_CHECK_MEMBERS([struct sockaddr.sa_len, |
AC_CHECK_MEMBERS([struct sockaddr.sa_len, |
struct sockaddr_in.sin_len, struct sockaddr_un.sun_len, |
struct sockaddr_in.sin_len, struct sockaddr_un.sun_len, |
struct sockaddr_in6.sin6_scope_id, |
struct sockaddr_in6.sin6_scope_id, |
|
struct sockaddr_dl.sdl_len, |
struct if6_aliasreq.ifra_lifetime, |
struct if6_aliasreq.ifra_lifetime, |
struct nd_opt_adv_interval.nd_opt_ai_type], |
struct nd_opt_adv_interval.nd_opt_ai_type], |
[], [], QUAGGA_INCLUDES) |
[], [], QUAGGA_INCLUDES) |
Line 1418 AC_CHECK_TYPES([struct in_pktinfo],
|
Line 1492 AC_CHECK_TYPES([struct in_pktinfo],
|
dnl -------------------------------------- |
dnl -------------------------------------- |
dnl checking for getrusage struct and call |
dnl checking for getrusage struct and call |
dnl -------------------------------------- |
dnl -------------------------------------- |
AC_MSG_CHECKING(whether getrusage is available) | if test "${enable_rusage}" != "no"; then |
AC_TRY_COMPILE([#include <sys/resource.h> | AC_MSG_CHECKING(whether getrusage is available) |
],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);], | AC_TRY_COMPILE([#include <sys/resource.h>],[struct rusage ac_x; getrusage (RUSAGE_SELF, &ac_x);], |
[AC_MSG_RESULT(yes) | [AC_MSG_RESULT(yes) |
AC_DEFINE(HAVE_RUSAGE,,rusage)], | AC_DEFINE(HAVE_RUSAGE,,rusage)], |
AC_MSG_RESULT(no)) | AC_MSG_RESULT(no)) |
| fi |
|
|
dnl -------------------------------------- |
dnl -------------------------------------- |
dnl checking for clock_time monotonic struct and call |
dnl checking for clock_time monotonic struct and call |
Line 1472 if test "${enable_capabilities}" != "no"; then
|
Line 1547 if test "${enable_capabilities}" != "no"; then
|
fi |
fi |
AC_SUBST(LIBCAP) |
AC_SUBST(LIBCAP) |
|
|
|
dnl --------------------------------------------------------------------------- |
|
dnl http://www.gnu.org/software/autoconf-archive/ax_sys_weak_alias.html |
|
dnl Check for and set one of the following = 1 |
|
dnl HAVE_SYS_WEAK_ALIAS_ATTRIBUTE |
|
dnl HAVE_SYS_WEAK_ALIAS_PRAGMA |
|
dnl HAVE_SYS_WEAK_ALIAS_HPSECONDARY |
|
dnl HAVE_SYS_WEAK_ALIAS_CRIDUPLICATE |
|
dnl If any scheme is found, set |
|
dnl HAVE_SYS_WEAK_ALIAS=1 |
|
dnl The following variable is set to text value |
|
dnl WEAK_ALIAS = "attribute" || "pragma" || "hpsecondary" || "criduplicate" || "no" |
|
dnl If weak alias can cross object file boundaries |
|
dnl WEAK_ALIAS_CROSSFILE = "yes" || "no" |
|
dnl --------------------------------------------------------------------------- |
|
AX_SYS_WEAK_ALIAS |
|
|
dnl --------------------------- |
dnl --------------------------- |
dnl check for glibc 'backtrace' |
dnl check for glibc 'backtrace' |
dnl --------------------------- |
dnl --------------------------- |
Line 1620 echo "
|
Line 1711 echo "
|
Quagga configuration |
Quagga configuration |
-------------------- |
-------------------- |
quagga version : ${PACKAGE_VERSION} |
quagga version : ${PACKAGE_VERSION} |
host operating system : ${host_os} | host operating system : ${host_os} |
source code location : ${srcdir} |
source code location : ${srcdir} |
compiler : ${CC} |
compiler : ${CC} |
compiler flags : ${CFLAGS} |
compiler flags : ${CFLAGS} |
make : ${MAKE-make} |
make : ${MAKE-make} |
includes : ${INCLUDES} ${SNMP_INCLUDES} | includes : ${INCLUDES} |
linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM} |
linker flags : ${LDFLAGS} ${LIBS} ${LIBCAP} ${LIBREADLINE} ${LIBM} |
state file directory : ${quagga_statedir} |
state file directory : ${quagga_statedir} |
config file directory : `eval echo \`echo ${sysconfdir}\`` |
config file directory : `eval echo \`echo ${sysconfdir}\`` |