[enable_debug=no]
)
+AC_ARG_ENABLE([debug-generated],
+ [AS_HELP_STRING([--enable-debug-generated], [enable this to abstain from generating #line @<:@no@:>@])],
+ [],
+ [enable_debug_generated=no]
+)
+
AC_ARG_ENABLE([memcheck],
[AS_HELP_STRING([--enable-memcheck], [check memory allocations when debugging @<:@yes@:>@])],
[],
)
AC_ARG_WITH([sysconfig],
- [AS_HELP_STRING([--with-sysconfig=FILE], [use specified BIRD system configuration file])],
- []
+ [AS_HELP_STRING([--with-sysconfig=FILE], [use specified BIRD system configuration file])]
)
AC_ARG_WITH([runtimedir],
- [AS_HELP_STRING([--with-runtimedir=PATH], [path for runtime files @<:@LOCALSTATEDIR/run@:>@])],
- [runtimedir="$with_runtimedir"],
- [runtimedir="\$(localstatedir)/run"]
+ [AS_HELP_STRING([--with-runtimedir=PATH], [run-state data, obsolete variant of --runstatedir])],
+ [runstatedir="$with_runtimedir"]
)
AC_ARG_WITH([iproutedir],
AC_SUBST([objdir])
AC_SUBST([exedir])
AC_SUBST([srcdir])
-AC_SUBST([runtimedir])
+# Workaround for older Autoconfs that do not define runstatedir
+AS_IF([test -z "${runstatedir}"], [runstatedir='${localstatedir}/run'])
+AC_SUBST([runstatedir])
-if test "$enable_debug" = yes ; then
- CONFIG_FILE="bird.conf"
- CONTROL_SOCKET="bird.ctl"
-else
- CONFIG_FILE="\$(sysconfdir)/bird.conf"
- CONTROL_SOCKET="$runtimedir/bird.ctl"
-fi
+CONFIG_FILE="\$(sysconfdir)/bird.conf"
AC_SUBST([CONFIG_FILE])
+
+CONTROL_SOCKET="\$(runstatedir)/bird.ctl"
AC_SUBST([CONTROL_SOCKET])
AC_SEARCH_LIBS([clock_gettime], [rt posix4],
AC_MSG_ERROR([This program requires the GNU C Compiler.])
fi
+BIRD_CHECK_THREAD_LOCAL
+if test "$bird_cv_thread_local" = yes ; then
+ AC_DEFINE([HAVE_THREAD_LOCAL], [1], [Define to 1 if _Thread_local is available])
+fi
+
if test "$enable_pthreads" != no ; then
BIRD_CHECK_PTHREADS
fi
fi
+# This is assumed to be necessary for proper BIRD build
+CFLAGS="$CFLAGS -fno-strict-aliasing -fno-strict-overflow"
+
if test "$bird_cflags_default" = yes ; then
BIRD_CHECK_GCC_OPTION([bird_cv_c_option_wno_pointer_sign], [-Wno-pointer-sign], [-Wall])
BIRD_CHECK_GCC_OPTION([bird_cv_c_option_wno_missing_init], [-Wno-missing-field-initializers], [-Wall -Wextra])
- BIRD_CHECK_GCC_OPTION([bird_cv_c_option_fno_strict_aliasing], [-fno-strict-aliasing])
- BIRD_CHECK_GCC_OPTION([bird_cv_c_option_fno_strict_overflow], [-fno-strict-overflow])
+
+ if test "$enable_debug" = no; then
+ BIRD_CHECK_LTO
+ fi
+
+ if test "$bird_cv_c_lto" = yes; then
+ CFLAGS="$CFLAGS -flto"
+ LDFLAGS="$LDFLAGS -flto=4 -g"
+ else
+ LDFLAGS="$LDFLAGS -g"
+ fi
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes -Wno-parentheses"
BIRD_ADD_GCC_OPTION([bird_cv_c_option_wno_pointer_sign], [-Wno-pointer-sign])
BIRD_ADD_GCC_OPTION([bird_cv_c_option_wno_missing_init], [-Wno-missing-field-initializers])
- BIRD_ADD_GCC_OPTION([bird_cv_c_option_fno_strict_aliasing], [-fno-strict-aliasing])
- BIRD_ADD_GCC_OPTION([bird_cv_c_option_fno_strict_overflow], [-fno-strict-overflow])
fi
+
+
AC_MSG_CHECKING([CFLAGS])
AC_MSG_RESULT([$CFLAGS])
+AC_MSG_CHECKING([LDFLAGS])
+AC_MSG_RESULT([$LDFLAGS])
AC_PROG_CPP
AC_PROG_INSTALL
test -z "$BISON" && AC_MSG_ERROR([Bison is missing.])
test -z "$M4" && AC_MSG_ERROR([M4 is missing.])
+AC_MSG_CHECKING([bison version])
+BIRD_CHECK_BISON_VERSION(BISON_VERSION)
+AC_MSG_RESULT([$BISON_VERSION])
+if test "$bird_bison_synclines" = yes && test "$enable_debug_generated" = no; then
+ M4FLAGS="$M4FLAGS -s"
+fi
+
+if test "$bird_bison_enhanced_error" = yes; then
+ BISONFLAGS="$BISONFLAGS -Dparse.lac=full -Dparse.error=verbose"
+fi
+
+AC_SUBST([M4FLAGS])
+AC_SUBST([BISONFLAGS])
+
BIRD_CHECK_PROG_FLAVOR_GNU([$M4],
[],
[AC_MSG_ERROR([Provided M4 is not GNU M4.])]
;;
freebsd*)
sysdesc=bsd
+ CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
;;
kfreebsd*)
sysdesc=bsd
fi
fi
-all_protocols="$proto_bfd babel bgp ospf pipe radv rip $proto_rpki static"
+all_protocols="$proto_bfd babel bgp mrt ospf perf pipe radv rip $proto_rpki static"
all_protocols=`echo $all_protocols | sed 's/ /,/g'`
AH_TEMPLATE([CONFIG_BABEL], [Babel protocol])
AH_TEMPLATE([CONFIG_BFD], [BFD protocol])
AH_TEMPLATE([CONFIG_BGP], [BGP protocol])
+AH_TEMPLATE([CONFIG_MRT], [MRT protocol])
AH_TEMPLATE([CONFIG_OSPF], [OSPF protocol])
AH_TEMPLATE([CONFIG_PIPE], [Pipe protocol])
AH_TEMPLATE([CONFIG_RADV], [RAdv protocol])
[AC_MSG_ERROR([Cannot determine CPU endianity.])]
)
+BIRD_CHECK_ANDROID_GLOB
+if test "$bird_cv_lib_glob" = no ; then
+ AC_MSG_ERROR([glob.h not found.])
+elif test "$bird_cv_lib_glob" != yes ; then
+ LIBS="$LIBS $bird_cv_lib_glob"
+fi
+
+BIRD_CHECK_ANDROID_LOG
+if test "$bird_cv_lib_log" = no ; then
+ AC_MSG_ERROR([don't know how to link syslog.])
+elif test "$bird_cv_lib_log" != yes ; then
+ LIBS="$LIBS $bird_cv_lib_log"
+fi
+
if test "$enable_debug" = yes ; then
AC_DEFINE([DEBUGGING], [1], [Define to 1 if debugging is enabled])
LDFLAGS="$LDFLAGS -rdynamic"
- CFLAGS="$CFLAGS -O0 -ggdb -g3 -gdwarf-4"
+ CFLAGS="$CFLAGS -O0 -ggdb -g3"
+
+ BIRD_CHECK_GCC_OPTION([bird_cv_c_option_dwarf4], [-gdwarf-4], [])
+ BIRD_ADD_GCC_OPTION([bird_cv_c_option_dwarf4], [-gdwarf-4])
AC_CHECK_HEADER([execinfo.h],
[