# Disable portability warnings -- our automake code (in particular
# common.am) uses some constructs specific to gmake.
-AM_INIT_AUTOMAKE([1.6 -Wno-portability])
+AM_INIT_AUTOMAKE([1.12 -Wno-portability])
m4_ifndef([AM_SILENT_RULES], [m4_define([AM_SILENT_RULES],[])])
AM_SILENT_RULES([yes])
AC_CONFIG_HEADERS(config.h)
AC_PATH_PROG(PERL, perl)
+PKG_PROG_PKG_CONFIG
dnl default is to match previous behavior
exampledir=${sysconfdir}
AS_HELP_STRING([--disable-rr-semantics], [disable the v6 Route Replace semantics]))
AC_ARG_ENABLE([protobuf],
AS_HELP_STRING([--enable-protobuf], [Enable experimental protobuf support]))
+AC_ARG_ENABLE([oldvpn_commands],
+ AS_HELP_STRING([--enable-old-vpn-commands], [Keep old vpn commands]))
AC_CHECK_HEADERS(json-c/json.h)
AC_CHECK_LIB(json-c, json_object_get, LIBS="$LIBS -ljson-c")
fi
fi
+#
+# Logic for old vpn commans support.
+#
+if test "$enable_old_vpn_commands" = "yes"; then
+ AC_DEFINE(KEEP_OLD_VPN_COMMANDS,, [Define for compiling with old vpn commands])
+fi
+
# Fail if the user explicity enabled protobuf support and we couldn't
# find the compiler or libraries.
if test "x$have_protobuf" = "xno" && test "x$enable_protobuf" = "xyes"; then
[AC_CHECK_LIB([m], [pow],
[LIBM="-lm"
LIBS="$LIBS $LIBM"
- AC_DEFINE(HAVE_LIBM,, Have libm)
AC_CHECK_FUNCS(pow,[],[LIBM=""])
])
])
AC_MSG_ERROR([Failed to detect IPv6 stack])
fi
-dnl this is unconditial, for compatibility
-AC_DEFINE(HAVE_IPV6,1,IPv6)
-
dnl ------------------
dnl IPv6 header checks
dnl ------------------
fi
AM_CONDITIONAL(OSPFD, test "x$OSPFD" = "xospfd")
-if test "${enable_ldpd}" = "yes";then
+if test "${enable_ldpd}" = "no";then
+ LDPD=""
+else
+ AX_PROG_PERL_MODULES(XML::LibXML, , [
+ if test -f "${srcdir}/ldpd/ldp_vty_cmds.c"; then
+ AC_MSG_WARN([XML::LibXML perl module not found, using pregenerated ldp_vty_cmds.c])
+ else
+ AC_MSG_ERROR([XML::LibXML perl module not found and pregenerated ldp_vty_cmds.c missing])
+ fi
+ ])
+
LDPD="ldpd"
AC_DEFINE(HAVE_LDPD, 1, ldpd)
-else
- LDPD=""
fi
AM_CONDITIONAL(LDPD, test "x$LDPD" = "xldpd")
AC_DEFINE(HAVE_CLOCK_MONOTONIC,, Have monotonic clock)
], [AC_MSG_RESULT(no)], [FRR_INCLUDES])
+dnl --------------------------------------
+dnl checking for flex and bison
+dnl --------------------------------------
+
+AM_PROG_LEX
+AC_MSG_CHECKING(version of flex)
+quagga_ac_flex_version="$(eval $LEX -V | grep flex | head -n 1)"
+quagga_ac_flex_version="${quagga_ac_flex_version##* }"
+AC_MSG_RESULT([$quagga_ac_flex_version])
+AX_COMPARE_VERSION([$quagga_ac_flex_version], [lt], [2.5.20], [
+ LEX="$SHELL $missing_dir/missing flex"
+ if test -f "${srcdir}/lib/command_lex.c" -a -f "${srcdir}/lib/command_lex.h"; then
+ AC_MSG_WARN([using pregenerated flex output files])
+ else
+ AC_MSG_ERROR([flex failure and pregenerated files not included (probably a git build)])
+ fi
+ AC_SUBST([LEX_OUTPUT_ROOT], [lex.yy])
+ AC_SUBST([LEXLIB], [''])
+])
+
+AC_PROG_YACC
+dnl thanks GNU bison for this b*llshit...
+AC_MSG_CHECKING(version of bison)
+quagga_ac_bison_version="$(eval $YACC -V | grep bison | head -n 1)"
+quagga_ac_bison_version="${quagga_ac_bison_version##* }"
+quagga_ac_bison_missing="false"
+case "x${quagga_ac_bison_version}" in
+ x2.7*)
+ BISON_OPENBRACE='"'
+ BISON_CLOSEBRACE='"'
+ AC_MSG_RESULT([$quagga_ac_bison_version - 2.7 or older])
+ ;;
+ x2.*|x1.*)
+ AC_MSG_RESULT([$quagga_ac_bison_version])
+ AC_MSG_WARN([installed bison is too old. Please install GNU bison 2.7.x or newer.])
+ quagga_ac_bison_missing="true"
+ ;;
+ x)
+ AC_MSG_RESULT([none])
+ AC_MSG_WARN([could not determine bison version. Please install GNU bison 2.7.x or newer.])
+ quagga_ac_bison_missing="true"
+ ;;
+ *)
+ BISON_OPENBRACE='{'
+ BISON_CLOSEBRACE='}'
+ AC_MSG_RESULT([$quagga_ac_bison_version - 3.0 or newer])
+ ;;
+esac
+AC_SUBST(BISON_OPENBRACE)
+AC_SUBST(BISON_CLOSEBRACE)
+
+if $quagga_ac_bison_missing; then
+ YACC="$SHELL $missing_dir/missing bison -y"
+ if test -f "${srcdir}/lib/command_parse.c" -a -f "${srcdir}/lib/command_parse.h"; then
+ AC_MSG_WARN([using pregenerated bison output files])
+ else
+ AC_MSG_ERROR([bison failure and pregenerated files not included (probably a git build)])
+ fi
+fi
+
dnl -------------------
dnl capabilities checks
dnl -------------------