summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 4187b6e)
raw | patch | inline | side by side (parent: 4187b6e)
author | Ruben Kerkhof <ruben@rubenkerkhof.com> | |
Sat, 23 Apr 2016 15:35:39 +0000 (17:35 +0200) | ||
committer | Ruben Kerkhof <ruben@rubenkerkhof.com> | |
Sat, 23 Apr 2016 19:24:17 +0000 (21:24 +0200) |
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
configure.ac | patch | blob | history | |
src/Makefile.am | patch | blob | history |
diff --git a/configure.ac b/configure.ac
index 32b4d350e55e72cb16b26d7c601503cd261e3f03..73dd27e2542c6b96aecf6e332f7eb9b84bd0e810 100644 (file)
--- a/configure.ac
+++ b/configure.ac
# }}}
# --with-librrd {{{
-# AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
librrd_cflags=""
librrd_ldflags=""
-librrd_threadsafe="yes"
+librrd_threadsafe="no"
librrd_rrdc_update="no"
-AC_ARG_WITH(librrd, [AS_HELP_STRING([--with-librrd@<:@=PREFIX@:>@], [Path to rrdtool.])],
-[ if test "x$withval" != "xno" && test "x$withval" != "xyes"
- then
- librrd_cflags="-I$withval/include"
- librrd_ldflags="-L$withval/lib"
- with_librrd="yes"
- else
- with_librrd="$withval"
- fi
-], [with_librrd="yes"])
+AC_ARG_WITH(librrd,
+ [AS_HELP_STRING([--with-librrd@<:@=PREFIX@:>@], [Path to rrdtool.])],
+ [
+ if test "x$withval" != "xno" && test "x$withval" != "xyes"
+ then
+ librrd_cflags="-I$withval/include"
+ librrd_ldflags="-L$withval/lib"
+ with_librrd="yes"
+ else
+ with_librrd="$withval"
+ fi
+ ],
+ [with_librrd="yes"]
+)
+
if test "x$with_librrd" = "xyes"
then
- SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $librrd_cflags"
+ SAVE_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $librrd_ldflags"
+ PKG_CHECK_MODULES([RRD], [librrd >= 1.6.0],
+ [
+ AC_CHECK_LIB([rrd], [rrd_update_r],
+ [librrd_threadsafe="yes"],
+ [:]
+ )
+ AC_CHECK_LIB([rrd], [rrdc_update],
+ [librrd_rrdc_update="yes"],
+ [:]
+ )
+ ],[:]
+ )
+ LDFLAGS="$SAVE_LDFLAGS"
- AC_CHECK_HEADERS(rrd.h,, [with_librrd="no (rrd.h not found)"])
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $RRD_CFLAGS $librrd_cflags"
- CPPFLAGS="$SAVE_CPPFLAGS"
+ AC_CHECK_HEADERS([rrd.h],, [with_librrd="no (rrd.h not found)"])
+
+ CPPFLAGS="$SAVE_CPPFLAGS"
fi
-if test "x$with_librrd" = "xyes"
+
+if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno"
then
- SAVE_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $librrd_ldflags"
+ SAVE_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $librrd_ldflags"
- AC_CHECK_LIB(rrd_th, rrd_update_r,
- [with_librrd="yes"
- librrd_ldflags="$librrd_ldflags -lrrd_th"
- ],
- [librrd_threadsafe="no"
- AC_CHECK_LIB(rrd, rrd_update,
- [with_librrd="yes"
- librrd_ldflags="$librrd_ldflags -lrrd"
- ],
- [with_librrd="no (symbol 'rrd_update' not found)"]
- )
- ]
- )
+ AC_CHECK_LIB([rrd_th], [rrd_update_r],
+ [
+ librrd_ldflags="$librrd_ldflags -lrrd_th"
+ librrd_threadsafe="yes"
+ AC_CHECK_LIB([rrd_th], [rrdc_update],
+ [librrd_rrdc_update="yes"],
+ [:],
+ )
+ ],
+ [:]
+ )
+ LDFLAGS="$SAVE_LDFLAGS"
+fi
- if test "x$librrd_threadsafe" = "xyes"
- then
- AC_CHECK_LIB(rrd_th, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"])
- else
- AC_CHECK_LIB(rrd, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"])
- fi
+if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno"
+then
+ SAVE_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $librrd_ldflags"
- LDFLAGS="$SAVE_LDFLAGS"
+ AC_CHECK_LIB([rrd], [rrd_update],
+ [
+ librrd_ldflags="$librrd_ldflags -lrrd"
+ AC_CHECK_LIB([rrd], [rrdc_update],
+ [librrd_rrdc_update="yes"],
+ [:]
+ )
+ ],
+ [with_librrd="no (symbol 'rrd_update' not found)"]
+ )
+ LDFLAGS="$SAVE_LDFLAGS"
fi
+
if test "x$with_librrd" = "xyes"
then
- BUILD_WITH_LIBRRD_CFLAGS="$librrd_cflags"
- BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags"
- AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS)
- AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS)
+ BUILD_WITH_LIBRRD_CFLAGS="$RRD_CFLAGS $librrd_cflags"
+ BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags"
+ BUILD_WITH_LIBRRD_LIBS="$RRD_LIBS"
+ AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS)
+ AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS)
+ AC_SUBST(BUILD_WITH_LIBRRD_LIBS)
fi
if test "x$librrd_threadsafe" = "xyes"
then
- AC_DEFINE(HAVE_THREADSAFE_LIBRRD, 1, [Define to 1 if you have the threadsafe rrd library (-lrrd_th).])
+ AC_DEFINE([HAVE_THREADSAFE_LIBRRD], [1],
+ [Define to 1 if the rrd library is thread-safe]
+ )
fi
# }}}
diff --git a/src/Makefile.am b/src/Makefile.am
index 3683b5596577aeee30c234c146defa22751c0f7a..72c1c95f5641ae57873271b5ac83a6bed6321e7e 100644 (file)
--- a/src/Makefile.am
+++ b/src/Makefile.am
if BUILD_PLUGIN_RRDCACHED
pkglib_LTLIBRARIES += rrdcached.la
rrdcached_la_SOURCES = rrdcached.c utils_rrdcreate.c utils_rrdcreate.h
-rrdcached_la_LDFLAGS = $(PLUGIN_LDFLAGS)
+rrdcached_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBRRD_LDFLAGS)
rrdcached_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBRRD_CFLAGS)
-rrdcached_la_LIBADD = $(BUILD_WITH_LIBRRD_LDFLAGS)
+rrdcached_la_LIBADD = $(BUILD_WITH_LIBRRD_LIBS)
endif
if BUILD_PLUGIN_RRDTOOL
pkglib_LTLIBRARIES += rrdtool.la
rrdtool_la_SOURCES = rrdtool.c utils_rrdcreate.c utils_rrdcreate.h
-rrdtool_la_LDFLAGS = $(PLUGIN_LDFLAGS)
+rrdtool_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBRRD_LDFLAGS)
rrdtool_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBRRD_CFLAGS)
-rrdtool_la_LIBADD = $(BUILD_WITH_LIBRRD_LDFLAGS)
+rrdtool_la_LIBADD = $(BUILD_WITH_LIBRRD_LIBS)
endif
if BUILD_PLUGIN_SENSORS