AC_CHECK_HEADERS([urcu-bp.h], [], [AC_MSG_ERROR([Cannot find [URCU] headers (urcu-bp.h). Use [CPPFLAGS]=-Idir to specify their location.
This error can also occur when the liburcu package's configure script has not been run.])])
-# URCU library version needed or newer
-m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.11.0 is needed])
-
-#Macro added in urcu 0.6.6
-AC_CHECK_DECL([caa_likely], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu.h>]])
-#Macro added in urcu 0.11.0
-AC_CHECK_DECL([DEFINE_URCU_TLS_IE], [],
- [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include <urcu/tls-compat.h>]]
-)
-
# urcu-cds - check that URCU Concurrent Data Structure lib is available to compilation
# Part of Userspace RCU library 0.7.2 or better.
AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [], [AC_MSG_ERROR([Cannot find
liburcu-cds lib, part of Userspace RCU 0.7 or better. Use [LDFLAGS]=-Ldir to specify its location.])])
+AC_MSG_CHECKING([caa_likely()])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <urcu/compiler.h>
+ void fct(void)
+ {
+ if (caa_likely(1)) {
+ }
+ }
+]])], [
+ AC_MSG_RESULT([yes])
+], [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Please upgrade your version of liburcu to 0.6.6 or better])
+])
+
# urcu - check that URCU lib is available to compilation
AC_CHECK_LIB([urcu-bp], [synchronize_rcu_bp], [], [AC_MSG_ERROR([Cannot find liburcu-bp lib. Use [LDFLAGS]=-Ldir to specify its location.])])
AC_CHECK_PROG([BUILD_GEN_TP_EXAMPLES], [python], ["yes"])
AM_CONDITIONAL([BUILD_GEN_TP_EXAMPLES], [test "x$BUILD_GEN_TP_EXAMPLES" = "xyes"])
+# Enable building examples
+AC_ARG_ENABLE(
+ examples,
+ AS_HELP_STRING(
+ [--disable-examples],
+ [Do not build and install examples]
+ ),
+ [enable_examples=$enableval],
+ [enable_examples=yes]
+)
+
+AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" != "xno"])
+
# Set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
# is not distributed in tarballs.
AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
AS_ECHO
PPRINT_SET_INDENT(0)
+test "x$enable_examples" = xyes && value=1 || value=0
+PPRINT_PROP_BOOL([Build and install examples], $value, $PPRINT_COLOR_SUBTITLE)
+
# man pages build enabled/disabled
m4_pushdef([build_man_pages_msg], [Build and install man pages])