From a95bdd964761ec69a23174f5213dd54b77d0971b Mon Sep 17 00:00:00 2001 From: Titouan Christophe Date: Sat, 3 Aug 2019 11:38:56 +0200 Subject: [PATCH] package/mosquitto: allow to build as static lib Since version 1.5, it is possible to build mosquitto as a static lib. However, the broker still needs a toolchain with support for shared libraries, because it contains code to dynamically load modules at runtime. This code makes use of dlfcn.h, which is only available for dylib enabled systems. Signed-off-by: Titouan Christophe [Peter: adjust broker comment] Signed-off-by: Peter Korsgaard --- package/mosquitto/Config.in | 9 ++++----- package/mosquitto/mosquitto.mk | 12 ++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/package/mosquitto/Config.in b/package/mosquitto/Config.in index c7373d9a84..1b3d1070f8 100644 --- a/package/mosquitto/Config.in +++ b/package/mosquitto/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_MOSQUITTO bool "mosquitto" - depends on !BR2_STATIC_LIBS # builds .so help Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and @@ -16,12 +15,12 @@ config BR2_PACKAGE_MOSQUITTO_BROKER bool "install the mosquitto broker" default y depends on BR2_USE_MMU # fork() + depends on !BR2_STATIC_LIBS # include depends on BR2_PACKAGE_MOSQUITTO help Build and install the mosquitto broker onto target. -comment "mosquitto broker needs a system with MMU" - depends on BR2_PACKAGE_MOSQUITTO && !BR2_USE_MMU - -comment "mosquitto needs a toolchain w/ dynamic library" +comment "mosquitto broker needs a toolchain w/ dynamic library" + depends on BR2_USE_MMU depends on BR2_STATIC_LIBS + depends on BR2_PACKAGE_MOSQUITTO diff --git a/package/mosquitto/mosquitto.mk b/package/mosquitto/mosquitto.mk index a172afcc53..eb39f0af6e 100644 --- a/package/mosquitto/mosquitto.mk +++ b/package/mosquitto/mosquitto.mk @@ -17,6 +17,18 @@ MOSQUITTO_MAKE_OPTS = \ WITH_WRAP=no \ WITH_DOCS=no +ifeq ($(BR2_SHARED_LIBS),y) +MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=no +else +MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=yes +endif + +ifeq ($(BR2_STATIC_LIBS),y) +MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=no +else +MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=yes +endif + # adns uses getaddrinfo_a ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) MOSQUITTO_MAKE_OPTS += WITH_ADNS=yes -- 2.30.2