From ed93534ffd9b64f72fc4d9dcff866191cddf3de6 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Thu, 20 Nov 2014 17:38:15 +0100 Subject: [PATCH] configure.ac, src/Makefile.am: Add mqtt to the build system. --- README | 3 +++ README.md | 38 --------------------------------- configure.ac | 50 ++++++++++++++++++++++++++++++++++++++++++++ mqtt.conf | 6 ------ src/Makefile.am | 8 +++++++ mqtt.c => src/mqtt.c | 0 6 files changed, 61 insertions(+), 44 deletions(-) delete mode 100644 README.md delete mode 100644 mqtt.conf rename mqtt.c => src/mqtt.c (100%) diff --git a/README b/README index 6ac7e2b9..ad5b6678 100644 --- a/README +++ b/README @@ -191,6 +191,9 @@ Features Reads values from Modbus/TCP enabled devices. Supports reading values from multiple "slaves" so gateway devices can be used. + - mqtt + Publishes and subscribes to MQTT topics. + - multimeter Information provided by serial multimeters, such as the `Metex M-4650CR'. diff --git a/README.md b/README.md deleted file mode 100644 index ef2b4deb..00000000 --- a/README.md +++ /dev/null @@ -1,38 +0,0 @@ -collectd-mqtt -============= - -This is my unfinished attempt to produce a MQTT write plugin for [collectd][0] -using the [Mosquitto][1] library. Due to a lack of time I never managed to get -the project to move forward. - -I'm not a professional developer – even less C developer, so expect this code to -be bad. Probably really bad. You've been warned. - -License -------- - -The MIT License (MIT) - -Copyright (c) 2014 Marc Falzon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - -[0]: https://collectd.org/ -[1]: http://mosquitto.org/ diff --git a/configure.ac b/configure.ac index 44d10cf6..6ee6e9a5 100644 --- a/configure.ac +++ b/configure.ac @@ -2653,6 +2653,53 @@ fi AM_CONDITIONAL(BUILD_WITH_LIBMONGOC, test "x$with_libmongoc" = "xyes") # }}} +# --with-libmosquitto {{{ +with_libmosquitto_cppflags="" +with_libmosquitto_libs="-lmosquitto" +AC_ARG_WITH(libmosquitto, [AS_HELP_STRING([--with-libmosquitto@<:@=PREFIX@:>@], [Path to libmosquitto.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + with_libmosquitto_cppflags="-I$withval/include" + with_libmosquitto_libs="-L$withval/lib -lmosquitto" + with_libmosquitto="yes" + else + with_libmosquitto="$withval" + fi +], +[ + with_libmosquitto="yes" +]) +if test "x$with_libmosquitto" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$with_libmosquitto_cppflags" + + AC_CHECK_HEADERS(mosquitto.h, [with_libmosquitto="yes"], [with_libmosquitto="no (mosquitto.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libmosquitto" = "xyes" +then + SAVE_LDFLAGS="$LDFLAGS" + SAVE_CPPFLAGS="$CPPFLAGS" + LDFLAGS="$with_libmosquitto_libs" + CPPFLAGS="$with_libmosquitto_cppflags" + + AC_CHECK_LIB(mosquitto, mosquitto_connect, [with_libmosquitto="yes"], [with_libmosquitto="no (libmosquitto not found)"]) + + LDFLAGS="$SAVE_LDFLAGS" + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libmosquitto" = "xyes" +then + BUILD_WITH_LIBMOSQUITTO_CPPFLAGS="$with_libmosquitto_cppflags" + BUILD_WITH_LIBMOSQUITTO_LIBS="$with_libmosquitto_libs" + AC_SUBST(BUILD_WITH_LIBMOSQUITTO_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBMOSQUITTO_LIBS) +fi +# }}} + # --with-libmysql {{{ with_mysql_config="mysql_config" with_mysql_cflags="" @@ -5632,6 +5679,7 @@ AC_PLUGIN([memcached], [yes], [memcached statistics]) AC_PLUGIN([memory], [$plugin_memory], [Memory usage]) AC_PLUGIN([mic], [$with_mic], [Intel Many Integrated Core stats]) AC_PLUGIN([modbus], [$with_libmodbus], [Modbus plugin]) +AC_PLUGIN([mqtt], [$with_libmosquitto], [MQTT output plugin]) AC_PLUGIN([multimeter], [$plugin_multimeter], [Read multimeter values]) AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics]) AC_PLUGIN([netapp], [$with_libnetapp], [NetApp plugin]) @@ -5912,6 +5960,7 @@ Configuration: libmnl . . . . . . . $with_libmnl libmodbus . . . . . . $with_libmodbus libmongoc . . . . . . $with_libmongoc + libmosquitto . . . . $with_libmosquitto libmysql . . . . . . $with_libmysql libnetapp . . . . . . $with_libnetapp libnetsnmp . . . . . $with_libnetsnmp @@ -6011,6 +6060,7 @@ Configuration: memory . . . . . . . $enable_memory mic . . . . . . . . . $enable_mic modbus . . . . . . . $enable_modbus + mqtt . . . . . . . . $enable_mqtt multimeter . . . . . $enable_multimeter mysql . . . . . . . . $enable_mysql netapp . . . . . . . $enable_netapp diff --git a/mqtt.conf b/mqtt.conf deleted file mode 100644 index eae25bd2..00000000 --- a/mqtt.conf +++ /dev/null @@ -1,6 +0,0 @@ - - - Host "localhost" - TopicPrefix "collectd" - - diff --git a/src/Makefile.am b/src/Makefile.am index 2c7c1821..0ca9b718 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -637,6 +637,14 @@ modbus_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBMODBUS_CFLAGS) modbus_la_LIBADD = $(BUILD_WITH_LIBMODBUS_LIBS) endif +if BUILD_PLUGIN_MQTT +pkglib_LTLIBRARIES += mqtt.la +mqtt_la_SOURCES = mqtt.c +mqtt_la_LDFLAGS = $(PLUGIN_LDFLAGS) +mqtt_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBMOSQUITTO_CFLAGS) +mqtt_la_LIBADD = $(BUILD_WITH_LIBMOSQUITTO_LIBS) +endif + if BUILD_PLUGIN_MULTIMETER pkglib_LTLIBRARIES += multimeter.la multimeter_la_SOURCES = multimeter.c diff --git a/mqtt.c b/src/mqtt.c similarity index 100% rename from mqtt.c rename to src/mqtt.c -- 2.30.2