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 <titouan.christophe@railnova.eu>
[Peter: adjust broker comment]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Titouan Christophe 2019-08-03 11:38:56 +02:00 committed by Peter Korsgaard
parent 228b0b1f00
commit a95bdd9647
2 changed files with 16 additions and 5 deletions

View File

@ -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 <dlfcn.h>
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

View File

@ -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