build mqtt_websockets with netdata autotools (#11083)
* build mqtt_websockets with netdata autotools * avoids handwritten makefiles in submodules
Timotej S committed
May 6, 2021 at 18:06 UTC
2973275191176fad8d2c3a2a3d9a917dd8746168
3 files changed
+51
-29
Makefile.am
+16
-13
@@ -117,11 +117,7 @@ SUBDIRS += \
117
spawn \
118
$(NULL)
119
120
-if ACLK_NG
121
-SUBDIRS += \
122
- mqtt_websockets \
123
- $(NULL)
124
-else
120
+if !ACLK_NG
121
SUBDIRS += \
122
aclk/legacy \
123
$(NULL)
@@ -562,6 +558,17 @@ ACLK_FILES = \
558
aclk/aclk_rx_msgs.h \
559
aclk/https_client.c \
560
aclk/https_client.h \
561
+ mqtt_websockets/src/mqtt_wss_client.c \
562
+ mqtt_websockets/src/include/mqtt_wss_client.h \
563
+ mqtt_websockets/src/mqtt_wss_log.c \
564
+ mqtt_websockets/src/include/mqtt_wss_log.h \
565
+ mqtt_websockets/src/ws_client.c \
566
+ mqtt_websockets/src/include/ws_client.h \
567
+ mqtt_websockets/c-rbuf/src/ringbuffer.c \
568
+ mqtt_websockets/c-rbuf/include/ringbuffer.h \
569
+ mqtt_websockets/c-rbuf/src/ringbuffer_internal.h \
570
+ mqtt_websockets/MQTT-C/src/mqtt.c \
571
+ mqtt_websockets/MQTT-C/include/mqtt.h \
572
$(NULL)
573
else #ACLK_NG
574
ACLK_FILES = \
@@ -755,23 +762,19 @@ NETDATACLI_FILES = \
762
sbin_PROGRAMS += netdata
763
netdata_SOURCES = $(NETDATA_FILES)
764
758
-if ACLK_NG
765
+
766
netdata_LDADD = \
760
- mqtt_websockets/libmqttwebsockets.a \
767
$(NETDATA_COMMON_LIBS) \
768
$(NULL)
763
-else #ACLK_NG
769
+
770
+if !ACLK_NG
771
if ENABLE_ACLK
765
-netdata_LDADD = \
772
+netdata_LDADD += \
773
externaldeps/mosquitto/libmosquitto.a \
774
$(OPTIONAL_LIBCAP_LIBS) \
775
$(OPTIONAL_LWS_LIBS) \
776
$(NETDATA_COMMON_LIBS) \
777
$(NULL)
771
-else #ENABLE_ACLK
772
-netdata_LDADD = \
773
- $(NETDATA_COMMON_LIBS) \
774
- $(NULL)
778
endif #ENABLE_ACLK
779
endif #ACLK_NG
780
configure.ac
+34
-15
@@ -738,24 +738,43 @@ if test "$enable_cloud" = "no" -a "$aclk_ng" = "yes"; then
738
fi
739
740
if test "$enable_cloud" != "no" -a "$aclk_ng" != "no"; then
741
+ can_enable_ng="yes"
742
+ AC_MSG_CHECKING([if git submodules present for ACLK Next Generation])
743
+ if test -f "mqtt_websockets/src/mqtt_wss_client.c"; then
744
+ AC_MSG_RESULT([yes])
745
+ else
746
+ AC_MSG_RESULT([no])
747
+ can_enable_ng="no"
748
+ fi
749
+ AC_MSG_CHECKING([if SSL available for ACLK Next Generation])
750
+ if test -n "${SSL_LIBS}"; then
751
+ AC_MSG_RESULT([yes])
752
+ OPTIONAL_SSL_CFLAGS="${SSL_CFLAGS}"
753
+ OPTIONAL_SSL_LIBS="${SSL_LIBS}"
754
+ else
755
+ AC_MSG_RESULT([no])
756
+ fi
757
AC_MSG_CHECKING([if JSON-C available for ACLK Next Generation])
758
if test "$enable_jsonc" != "yes"; then
759
AC_MSG_RESULT([no])
760
+ can_enable_ng="no"
761
else
762
AC_MSG_RESULT([yes])
746
- if test "$aclk_ng" != "yes" -a "$enable_aclk" == "no"; then #default "fallback"
747
- AC_MSG_NOTICE([ACLK Legacy could not be built. Trying ACLK-NG as fallback.])
748
- aclk_ng="yes"
749
- fi
750
- if test "$aclk_ng" = "yes"; then
751
- #TODO Check OpenSSL and JSON-C
752
- AC_MSG_CHECKING([if ACLK Next Generation can be built])
753
- AC_DEFINE([ACLK_NG], [1], [ACLK Next Generation Should be used])
754
- AC_DEFINE([ENABLE_ACLK], [1], [netdata ACLK])
755
- enable_aclk="yes"
756
- AC_MSG_RESULT([yes])
757
- OPTIONAL_MQTT_WSS_CFLAGS="-Imqtt_websockets/src/include"
758
- fi
763
+ fi
764
+ AC_MSG_CHECKING([ACLK Next Generation can be built])
765
+ AC_MSG_RESULT([${can_enable_ng}])
766
+ if test "$aclk_ng" = "yes" -a "$can_enable_ng" != "yes"; then
767
+ AC_MSG_ERROR([ACLK-NG requested but can't be built])
768
+ fi
769
+ if test "$aclk_ng" != "yes" -a "$enable_aclk" == "no" -a "$can_enable_ng" = "yes"; then #default "fallback"
770
+ AC_MSG_NOTICE([ACLK Legacy could not be built. Trying ACLK-NG as fallback.])
771
+ aclk_ng="yes"
772
+ fi
773
+ if test "$aclk_ng" = "yes"; then
774
+ AC_DEFINE([ACLK_NG], [1], [ACLK Next Generation Should be used])
775
+ AC_DEFINE([ENABLE_ACLK], [1], [netdata ACLK])
776
+ enable_aclk="yes"
777
+ OPTIONAL_ACLK_NG_CFLAGS="-Imqtt_websockets/src/include -Imqtt_websockets/c-rbuf/include -Imqtt_websockets/MQTT-C/include"
778
fi
779
fi
780
AC_SUBST([enable_cloud])
@@ -1458,7 +1477,7 @@ CFLAGS="${CFLAGS} ${OPTIONAL_MATH_CFLAGS} ${OPTIONAL_NFACCT_CFLAGS} ${OPTIONAL_Z
1477
${OPTIONAL_LIBCAP_CFLAGS} ${OPTIONAL_IPMIMONITORING_CFLAGS} ${OPTIONAL_CUPS_CFLAGS} ${OPTIONAL_XENSTAT_FLAGS} \
1478
${OPTIONAL_KINESIS_CFLAGS} ${OPTIONAL_PUBSUB_CFLAGS} ${OPTIONAL_PROMETHEUS_REMOTE_WRITE_CFLAGS} \
1479
${OPTIONAL_MONGOC_CFLAGS} ${LWS_CFLAGS} ${OPTIONAL_JSONC_STATIC_CFLAGS} ${OPTIONAL_BPF_CFLAGS} ${OPTIONAL_JUDY_CFLAGS} \
1461
- ${OPTIONAL_MQTT_WSS_CFLAGS}"
1480
+ ${OPTIONAL_ACLK_NG_CFLAGS}"
1481
1482
CXXFLAGS="${CFLAGS} ${CXX11FLAG}"
1483
@@ -1508,7 +1527,7 @@ AC_SUBST([OPTIONAL_PROMETHEUS_REMOTE_WRITE_LIBS])
1527
AC_SUBST([OPTIONAL_MONGOC_CFLAGS])
1528
AC_SUBST([OPTIONAL_MONGOC_LIBS])
1529
AC_SUBST([OPTIONAL_LWS_LIBS])
1511
-AC_SUBST([OPTIONAL_MQTT_WSS_CFLAGS])
1530
+AC_SUBST([OPTIONAL_ACLK_NG_CFLAGS])
1531
1532
# -----------------------------------------------------------------------------
1533
# Check if cmocka is available - needed for unit testing
mqtt_websockets
+1
-1
@@ -1 +1 @@
1
-Subproject commit 232c7618305eb4f4ec25d3217de145b49eb04c4d
1
+Subproject commit 613089e91ed0779dc8ebba60394e648400560b05