X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure.ac;h=0120c517c64a4564ffbb3d16c87f3973896b9978;hb=HEAD;hp=495c89c0d6104ae21ca8b9f32379468d1a283eae;hpb=ad1327b3d4c340920181265717401bcb91243527;p=mirror_frr.git diff --git a/configure.ac b/configure.ac index 495c89c0d..0120c517c 100644 --- a/configure.ac +++ b/configure.ac @@ -299,14 +299,20 @@ if test "$enable_scripting" = "yes"; then AX_LUA_HEADERS([], [ AC_MSG_ERROR([Lua 5.3 headers are required to build with Lua support. No other version is supported.]) ]) - AX_LUA_LIBS([ + PKG_CHECK_MODULES([LUA], [lua5.3], [ AC_DEFINE([HAVE_SCRIPTING], [1], [Have support for scripting]) - LIBS="$LIBS $LUA_LIB" + LIBS="$LIBS $LUA_LIBS" SCRIPTING=true ], [ - SCRIPTING=false - AC_MSG_ERROR([Lua 5.3 libraries are required to build with Lua support. No other version is supported.]) - ]) + AX_LUA_LIBS([ + AC_DEFINE([HAVE_SCRIPTING], [1], [Have support for scripting]) + LIBS="$LIBS $LUA_LIB" + SCRIPTING=true + ], [ + SCRIPTING=false + AC_MSG_ERROR([Lua 5.3 libraries are required to build with Lua support. No other version is supported.]) + ]) + ]) fi dnl the following flags go in CFLAGS rather than AC_CFLAGS since they make @@ -616,6 +622,10 @@ AC_ARG_ENABLE([zebra], AS_HELP_STRING([--disable-zebra], [do not build zebra daemon])) AC_ARG_ENABLE([bgpd], AS_HELP_STRING([--disable-bgpd], [do not build bgpd])) +AC_ARG_ENABLE([mgmtd], + AS_HELP_STRING([--disable-mgmtd], [do not build mgmtd])) +AC_ARG_ENABLE([mgmtd_local_validations], + AS_HELP_STRING([--enable-mgmtd-local-validations], [dev: unimplemented local validation])) AC_ARG_ENABLE([ripd], AS_HELP_STRING([--disable-ripd], [do not build ripd])) AC_ARG_ENABLE([ripngd], @@ -681,6 +691,8 @@ AC_ARG_ENABLE([ospfapi], AC_ARG_ENABLE([ospfclient], AS_HELP_STRING([--disable-ospfclient], [do not build OSPFAPI client for OSPFAPI, (this is the default if --disable-ospfapi is set)])) +AC_ARG_WITH([log_timestamp_precision], + AS_HELP_STRING([--with-log-timestamp-precision=ARG], [set startup log timestamp precision, ARG must be 0-12])) AC_ARG_ENABLE([multipath], AS_HELP_STRING([--enable-multipath=ARG], [enable multipath function, ARG must be digit])) AC_ARG_WITH([service_timeout], @@ -782,6 +794,9 @@ if test "$ac_cv_lib_json_c_json_object_get" = "no"; then fi ]) +AC_ARG_ENABLE([ccls], +AS_HELP_STRING([--enable-ccls], [Write .ccls config for this build])) + AC_ARG_ENABLE([dev_build], AS_HELP_STRING([--enable-dev-build], [build for development])) @@ -890,10 +905,6 @@ if test "$enable_oldvpn_commands" = "yes"; then AC_DEFINE([KEEP_OLD_VPN_COMMANDS], [1], [Define for compiling with old vpn commands]) fi -# -# End of logic for protobuf support. -# - AC_MSG_CHECKING([if zebra should be configurable to send Route Advertisements]) if test "$enable_rtadv" != "no"; then AC_MSG_RESULT([yes]) @@ -956,8 +967,19 @@ esac AC_DEFINE_UNQUOTED([MULTIPATH_NUM], [$MPATH_NUM], [Maximum number of paths for a route]) -AC_DEFINE_UNQUOTED([VTYSH_PAGER], ["$VTYSH_PAGER"], [What pager to use]) +case "${with_log_timestamp_precision}" in +[[0-9]|1[012]]) +;; +"") +;; +*) +AC_MSG_FAILURE([Please specify a number from 0-12 for log precision ARG]) +;; +esac +with_log_timestamp_precision=${with_log_timestamp_precision:-0} +AC_DEFINE_UNQUOTED([LOG_TIMESTAMP_PRECISION], [${with_log_timestamp_precision}], [Startup zlog timestamp precision]) +AC_DEFINE_UNQUOTED([VTYSH_PAGER], ["$VTYSH_PAGER"], [What pager to use]) TIMEOUT_MIN=2 case "${with_service_timeout}" in @@ -1338,21 +1360,21 @@ dnl ########################################################################## # Logic for protobuf support. # PROTO3=false -if test "$enable_protobuf" = "yes"; then - # Check for protoc & protoc-c - - # protoc is not required, it's only for a "be nice" helper target - AC_CHECK_PROGS([PROTOC], [protoc], [/bin/false]) +# Enable Protobuf by default at all times. +# Check for protoc & protoc-c +# protoc is not required, it's only for a "be nice" helper target +AC_CHECK_PROGS([PROTOC], [protoc], [/bin/false]) - AC_CHECK_PROGS([PROTOC_C], [protoc-c], [/bin/false]) - if test "$PROTOC_C" = "/bin/false"; then - AC_MSG_FAILURE([protobuf requested but protoc-c not found. Install protobuf-c.]) - fi +AC_CHECK_PROGS([PROTOC_C], [protoc-c], [/bin/false]) +if test "$PROTOC_C" = "/bin/false"; then + AC_MSG_FAILURE([protobuf requested but protoc-c not found. Install protobuf-c.]) +fi - PKG_CHECK_MODULES([PROTOBUF_C], [libprotobuf-c >= 0.14],, [ - AC_MSG_FAILURE([protobuf requested but libprotobuf-c not found. Install protobuf-c.]) - ]) +PKG_CHECK_MODULES([PROTOBUF_C], [libprotobuf-c >= 1.1.0],, [ + AC_MSG_FAILURE([minimum version (1.1.0) of libprotobuf-c not found. Install minimum required version of protobuf-c.]) +]) +if test "$enable_protobuf3" = "yes"; then PROTO3=true AC_CHECK_HEADER([google/protobuf-c/protobuf-c.h], [AC_CHECK_DECLS(PROTOBUF_C_LABEL_NONE, @@ -1360,11 +1382,14 @@ if test "$enable_protobuf" = "yes"; then [1], [Have Protobuf version 3]), [PROTO3=false], [#include ])], - [PROTO3=false && AC_MSG_FAILURE([protobuf requested but protobuf-c.h not found. Install protobuf-c.])]) - - AC_DEFINE([HAVE_PROTOBUF], [1], [protobuf]) + [PROTO3=false && AC_MSG_FAILURE([protobuf3 requested but protobuf-c.h not found. Install protobuf-c.])]) fi +AC_DEFINE([HAVE_PROTOBUF], [1], [protobuf]) +# +# End of logic for protobuf support. +# + dnl --------------------- dnl Integrated VTY option @@ -1728,6 +1753,16 @@ AS_IF([test "$enable_bgpd" != "no"], [ AC_DEFINE([HAVE_BGPD], [1], [bgpd]) ]) +AS_IF([test "$enable_mgmtd" != "no"], [ + + AC_DEFINE([HAVE_MGMTD], [1], [mgmtd]) + + # Enable MGMTD local validations + AS_IF([test "$enable_mgmtd_local_validations" == "yes"], [ + AC_DEFINE([MGMTD_LOCAL_VALIDATIONS_ENABLED], [1], [Enable mgmtd local validations.]) + ]) +]) + AS_IF([test "$enable_ripd" != "no"], [ AC_DEFINE([HAVE_RIPD], [1], [ripd]) ]) @@ -2658,6 +2693,8 @@ AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$frr_statedir%s%s/ldpd.sock"], [ldpd control AC_DEFINE_UNQUOTED([ZEBRA_SERV_PATH], ["$frr_statedir%s%s/zserv.api"], [zebra api socket]) AC_DEFINE_UNQUOTED([BFDD_CONTROL_SOCKET], ["$frr_statedir%s%s/bfdd.sock"], [bfdd control socket]) AC_DEFINE_UNQUOTED([OSPFD_GR_STATE], ["$frr_statedir%s/ospfd-gr.json"], [ospfd GR state information]) +AC_DEFINE_UNQUOTED([MGMTD_FE_SERVER_PATH], ["$frr_statedir/mgmtd_fe.sock"], [mgmtd frontend server socket]) +AC_DEFINE_UNQUOTED([MGMTD_BE_SERVER_PATH], ["$frr_statedir/mgmtd_be.sock"], [mgmtd backend server socket]) AC_DEFINE_UNQUOTED([OSPF6D_GR_STATE], ["$frr_statedir/ospf6d-gr.json"], [ospf6d GR state information]) AC_DEFINE_UNQUOTED([ISISD_RESTART], ["$frr_statedir%s/isid-restart.json"], [isisd restart information]) AC_DEFINE_UNQUOTED([OSPF6_AUTH_SEQ_NUM_FILE], ["$frr_statedir/ospf6d-at-seq-no.dat"], [ospf6d AT Sequence number information]) @@ -2678,6 +2715,7 @@ AC_SUBST([vtysh_bin]) CFG_SYSCONF="$sysconfdir" CFG_SBIN="$sbindir" +CFG_BIN="$bindir" CFG_STATE="$frr_statedir" CFG_MODULE="$moduledir" CFG_YANGMODELS="$yangmodelsdir" @@ -2685,6 +2723,7 @@ CFG_SCRIPT="$scriptdir" for I in 1 2 3 4 5 6 7 8 9 10; do eval CFG_SYSCONF="\"$CFG_SYSCONF\"" eval CFG_SBIN="\"$CFG_SBIN\"" + eval CFG_BIN="\"$CFG_BIN\"" eval CFG_STATE="\"$CFG_STATE\"" eval CFG_MODULE="\"$CFG_MODULE\"" eval CFG_YANGMODELS="\"$CFG_YANGMODELS\"" @@ -2692,6 +2731,7 @@ for I in 1 2 3 4 5 6 7 8 9 10; do done AC_SUBST([CFG_SYSCONF]) AC_SUBST([CFG_SBIN]) +AC_SUBST([CFG_BIN]) AC_SUBST([CFG_STATE]) AC_SUBST([CFG_MODULE]) AC_SUBST([CFG_SCRIPT]) @@ -2716,7 +2756,7 @@ AM_CONDITIONAL([RPKI], [test "$RPKI" = "true"]) AM_CONDITIONAL([SNMP], [test "$SNMP_METHOD" = "agentx"]) AM_CONDITIONAL([IRDP], [$IRDP]) AM_CONDITIONAL([FPM], [test "$enable_fpm" = "yes"]) -AM_CONDITIONAL([HAVE_PROTOBUF], [test "$enable_protobuf" = "yes"]) +AM_CONDITIONAL([HAVE_PROTOBUF], [test "$enable_protobuf" != "no"]) AM_CONDITIONAL([HAVE_PROTOBUF3], [$PROTO3]) dnl PCEP plugin @@ -2733,6 +2773,7 @@ dnl daemons AM_CONDITIONAL([VTYSH], [test "$VTYSH" = "vtysh"]) AM_CONDITIONAL([ZEBRA], [test "$enable_zebra" != "no"]) AM_CONDITIONAL([BGPD], [test "$enable_bgpd" != "no"]) +AM_CONDITIONAL([MGMTD], [test "$enable_mgmtd" != "no"]) AM_CONDITIONAL([RIPD], [test "$enable_ripd" != "no"]) AM_CONDITIONAL([OSPFD], [test "$enable_ospfd" != "no"]) AM_CONDITIONAL([LDPD], [test "$enable_ldpd" != "no"]) @@ -2770,7 +2811,7 @@ AC_CONFIG_FILES([ alpine/APKBUILD snapcraft/snapcraft.yaml lib/version.h - tests/lib/cli/test_cli.refout + tests/lib/cli/test_cli.refout pkgsrc/mgmtd.sh pkgsrc/bgpd.sh pkgsrc/ospf6d.sh pkgsrc/ospfd.sh pkgsrc/ripd.sh pkgsrc/ripngd.sh pkgsrc/zebra.sh pkgsrc/eigrpd.sh]) @@ -2782,6 +2823,42 @@ AC_CONFIG_FILES([tools/frrcommon.sh]) AC_CONFIG_FILES([tools/frr.service]) AC_CONFIG_FILES([tools/frr@.service]) +# dnl write out a ccls file with our compile configuration +# dnl have to add -Wno-unused-function otherwise foobar_cmd_magic causes +# dnl all DEFPY(), et al., macros to flag as errors. +AS_IF([test "$enable_ccls" = "yes"], [ + AC_CONFIG_COMMANDS([gen-dot-ccls], [ + cat > "${srcdir}/.ccls" <> "${srcdir}/.ccls" + fi + if test -n "$FRR_ALL_CCLS_FLAGS"; then + echo ${FRR_ALL_CCLS_FLAGS} | tr ' ' '\n' >> "${srcdir}/.ccls" + fi + if test -n "$FRR_ALL_CCLS_CFLAGS"; then + cat >> "${srcdir}/.ccls" <