dnl -------
dnl libtool
dnl -------
+AC_ARG_ENABLE(static-bin,
+ AS_HELP_STRING([--enable-static-bin], [link binaries statically]))
LT_INIT
+_LT_CONFIG_LIBTOOL([
+ patch -N -i "${srcdir}/m4/libtool-whole-archive.patch" libtool >&AS_MESSAGE_LOG_FD || \
+ AC_MSG_WARN([Could not patch libtool for static linking support. Loading modules into a statically linked daemon will fail.])
+])
+if test "$enable_static_bin" = "yes"; then
+ AC_LDFLAGS="-static"
+fi
+AC_SUBST(AC_LDFLAGS)
+AM_CONDITIONAL([STATIC_BIN], [test "x$enable_static_bin" = "xyes"])
dnl ----------------------
dnl Packages configuration
fi
AM_CONDITIONAL([GIT_VERSION], [test "x$with_pkg_git_version" = "xyes"])
+AC_CHECK_TOOL([OBJCOPY], [objcopy], [:])
+AC_CACHE_CHECK([for .interp value to use], [frr_cv_interp], [
+ frr_cv_interp=""
+ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])], [
+ if $OBJCOPY -j.interp -Obinary conftest conftest.interp; then
+ frr_cv_interp="`xargs -0 echo < conftest.interp`"
+ fi
+ test -f conftest.interp && rm conftest.interp
+ ])
+])
+if test -n "$frr_cv_interp"; then
+ AC_DEFINE_UNQUOTED(INTERP, ["$frr_cv_interp"], [.interp value])
+fi
+
dnl ------------------------------------
dnl Check C keywords and standard types
dnl ------------------------------------
AC_CHECK_LIB(socket, main)
AC_CHECK_LIB(nsl, main)
AC_CHECK_LIB(umem, main)
- AC_CHECK_FUNCS([printstack], [
- AC_DEFINE([HAVE_PRINTSTACK],1,[Solaris printstack])
- AC_DEFINE([HAVE_STACK_TRACE],1,[Stack symbols decode functionality])
- ])
CURSES=-lcurses
SOLARIS="solaris"
;;
dnl ---------------------------
if test x"${enable_backtrace}" != x"no" ; then
backtrace_ok=no
- AC_CHECK_HEADER([execinfo.h], [
- AC_SEARCH_LIBS([backtrace], [execinfo], [
- AC_DEFINE(HAVE_GLIBC_BACKTRACE,,[Glibc backtrace])
- AC_DEFINE(HAVE_STACK_TRACE,,[Stack symbol decoding])
- backtrace_ok=yes
- ],, [-lm])
+ PKG_CHECK_MODULES([UNWIND], [libunwind], [
+ AC_DEFINE(HAVE_LIBUNWIND, 1, [libunwind])
+ backtrace_ok=yes
+ ], [
+ case "$host_os" in
+ sunos* | solaris2*)
+ AC_CHECK_FUNCS([printstack], [
+ AC_DEFINE([HAVE_PRINTSTACK], 1, [Solaris printstack])
+ backtrace_ok=yes
+ ])
+ ;;
+ esac
+ if test "$backtrace_ok" = no; then
+ AC_CHECK_HEADER([execinfo.h], [
+ AC_SEARCH_LIBS([backtrace], [execinfo], [
+ AC_DEFINE(HAVE_GLIBC_BACKTRACE, 1, [Glibc backtrace])
+ backtrace_ok=yes
+ ],, [-lm])
+ ])
+ fi
])
if test x"${enable_backtrace}" = x"yes" -a x"${backtrace_ok}" = x"no"; then
dnl user explicitly requested backtrace but we failed to find support
- AC_MSG_FAILURE([failed to find backtrace support])
+ AC_MSG_FAILURE([failed to find backtrace or libunwind support])
fi
fi