diff options
Diffstat (limited to 'configure.ac')
| -rwxr-xr-x | configure.ac | 115 |
1 files changed, 79 insertions, 36 deletions
diff --git a/configure.ac b/configure.ac index 42c2963ee6..8d18817bd2 100755 --- a/configure.ac +++ b/configure.ac @@ -454,6 +454,8 @@ AC_ARG_ENABLE([numeric_version], AS_HELP_STRING([--enable-numeric-version], [Only numeric digits allowed in version (for Alpine)])) AC_ARG_ENABLE([gcov], AS_HELP_STRING([--enable-gcov], [Add code coverage information])) +AC_ARG_ENABLE(bfdd, + AS_HELP_STRING([--disable-bfdd], [do not build bfdd])) AS_IF([test "${enable_clippy_only}" != "yes"], [ AC_CHECK_HEADERS(json-c/json.h) @@ -1192,33 +1194,6 @@ case "$host_os" in esac AC_DEFINE_UNQUOTED(ISIS_METHOD, $ISIS_METHOD_MACRO, [ selected method for isis, == one of the constants ]) -dnl ------------------------------------ -dnl check for broken CMSG_FIRSTHDR macro -dnl ------------------------------------ -AC_MSG_CHECKING(for broken CMSG_FIRSTHDR) -AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#ifdef SUNOS_5 -#define _XPG4_2 -#define __EXTENSIONS__ -#endif -#include <stdlib.h> -#include <sys/types.h> -#include <sys/socket.h> - -main() -{ - struct msghdr msg; - char buf[4]; - - msg.msg_control = buf; - msg.msg_controllen = 0; - - if (CMSG_FIRSTHDR(&msg) != NULL) - exit(0); - exit (1); -}]])],[AC_MSG_RESULT(yes - using workaround) AC_DEFINE(HAVE_BROKEN_CMSG_FIRSTHDR,,Broken CMSG_FIRSTHDR)], -[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)]) - dnl --------------------------------------------------------------- dnl figure out how to specify an interface in multicast sockets API dnl --------------------------------------------------------------- @@ -1370,6 +1345,30 @@ AS_IF([test "${enable_ldpd}" != "no"], [ AC_DEFINE(HAVE_LDPD, 1, ldpd) ]) +if test "$enable_bfdd" = "no"; then + AC_DEFINE(HAVE_BFDD, 0, bfdd) + BFDD="" +else + AC_DEFINE(HAVE_BFDD, 1, bfdd) + BFDD="bfdd" + + case $host_os in + linux*) + AC_DEFINE(BFD_LINUX, 1, bfdd) + ;; + + *) + AC_DEFINE(BFD_BSD, 1, bfdd) + ;; + esac +fi + +AM_CONDITIONAL(BFDD, [test "x$BFDD" = "xbfdd"]) + +if test $ac_cv_lib_json_c_json_object_get = no -a "x$BFDD" = "xbfdd"; then + AC_MSG_ERROR(["you must use json-c library to use bfdd"]) +fi + NHRPD="" case "$host_os" in linux*) @@ -1813,15 +1812,58 @@ dnl order to check no alternative allocator dnl has been specified, which might not provide dnl mallinfo, e.g. such as Umem on Solaris. dnl ----------------------------------------- -AC_CHECK_HEADER([malloc.h], - [AC_MSG_CHECKING(whether mallinfo is available) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]], - [[struct mallinfo ac_x; ac_x = mallinfo ();]])], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_MALLINFO,,mallinfo)], - AC_MSG_RESULT(no) - ) - ], [], FRR_INCLUDES) +AC_CHECK_HEADERS([malloc.h malloc/malloc.h],,, [FRR_INCLUDES]) + +AC_MSG_CHECKING(whether mallinfo is available) +AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +struct mallinfo ac_x; ac_x = mallinfo (); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLINFO,,mallinfo) +], [ + AC_MSG_RESULT(no) +]) + +AC_MSG_CHECKING(whether malloc_usable_size is available) +AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +size_t ac_x; ac_x = malloc_usable_size(NULL); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLOC_USABLE_SIZE,,malloc_usable_size) +], [ + AC_MSG_RESULT(no) + + AC_MSG_CHECKING(whether malloc_size is available) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +size_t ac_x; ac_x = malloc_size(NULL); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLOC_SIZE,,malloc_size) + ], [ + AC_MSG_RESULT(no) + ]) +]) dnl ------ dnl ZeroMQ @@ -1882,6 +1924,7 @@ AC_SUBST(frr_statedir) AC_DEFINE_UNQUOTED(LDPD_SOCKET, "$frr_statedir/ldpd.sock",ldpd control socket) AC_DEFINE_UNQUOTED(ZEBRA_SERV_PATH, "$frr_statedir/zserv.api",zebra api socket) +AC_DEFINE_UNQUOTED(BFDD_CONTROL_SOCKET, "$frr_statedir/bfdd.sock", bfdd control socket) AC_DEFINE_UNQUOTED(DAEMON_VTY_DIR, "$frr_statedir",daemon vty directory) dnl autoconf does this, but it does it too late... |
