1################################################################################ 2# 3# mosquitto 4# 5################################################################################ 6 7MOSQUITTO_VERSION = 2.0.14 8MOSQUITTO_SITE = https://mosquitto.org/files/source 9MOSQUITTO_LICENSE = EPL-2.0 or EDLv1.0 10MOSQUITTO_LICENSE_FILES = LICENSE.txt epl-v20 edl-v10 11MOSQUITTO_CPE_ID_VENDOR = eclipse 12MOSQUITTO_INSTALL_STAGING = YES 13 14MOSQUITTO_MAKE_OPTS = \ 15 CLIENT_STATIC_LDADD="$(MOSQUITTO_STATIC_LIBS)" \ 16 UNAME=Linux \ 17 STRIP=true \ 18 prefix=/usr \ 19 WITH_WRAP=no \ 20 WITH_DOCS=no 21 22ifeq ($(BR2_SHARED_LIBS),y) 23MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=no 24else 25MOSQUITTO_MAKE_OPTS += WITH_STATIC_LIBRARIES=yes 26endif 27 28ifeq ($(BR2_STATIC_LIBS),y) 29MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=no 30else 31MOSQUITTO_MAKE_OPTS += WITH_SHARED_LIBRARIES=yes 32endif 33 34ifeq ($(BR2_PACKAGE_SYSTEMD),y) 35MOSQUITTO_MAKE_OPTS += WITH_SYSTEMD=yes 36MOSQUITTO_DEPENDENCIES += systemd 37endif 38 39# adns uses getaddrinfo_a 40ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y) 41MOSQUITTO_MAKE_OPTS += WITH_ADNS=yes 42else 43MOSQUITTO_MAKE_OPTS += WITH_ADNS=no 44endif 45 46# threaded API uses pthread_setname_np 47ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y) 48MOSQUITTO_MAKE_OPTS += WITH_THREADING=yes 49else 50MOSQUITTO_MAKE_OPTS += WITH_THREADING=no 51endif 52 53ifeq ($(BR2_PACKAGE_OPENSSL),y) 54MOSQUITTO_DEPENDENCIES += host-pkgconf openssl 55MOSQUITTO_MAKE_OPTS += WITH_TLS=yes 56MOSQUITTO_STATIC_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs openssl` 57else 58MOSQUITTO_MAKE_OPTS += WITH_TLS=no 59endif 60 61ifeq ($(BR2_PACKAGE_CJSON),y) 62MOSQUITTO_DEPENDENCIES += cjson 63MOSQUITTO_MAKE_OPTS += WITH_CJSON=yes 64MOSQUITTO_STATIC_LIBS += -lcjson 65else 66MOSQUITTO_MAKE_OPTS += WITH_CJSON=no 67endif 68 69ifeq ($(BR2_PACKAGE_C_ARES),y) 70MOSQUITTO_DEPENDENCIES += c-ares 71MOSQUITTO_MAKE_OPTS += WITH_SRV=yes 72else 73MOSQUITTO_MAKE_OPTS += WITH_SRV=no 74endif 75 76ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y) 77MOSQUITTO_DEPENDENCIES += libwebsockets 78MOSQUITTO_MAKE_OPTS += WITH_WEBSOCKETS=yes 79else 80MOSQUITTO_MAKE_OPTS += WITH_WEBSOCKETS=no 81endif 82 83# C++ support is only used to create a wrapper library 84ifneq ($(BR2_INSTALL_LIBSTDCPP),y) 85define MOSQUITTO_DISABLE_CPP 86 $(SED) '/-C cpp/d' $(@D)/lib/Makefile 87endef 88 89MOSQUITTO_POST_PATCH_HOOKS += MOSQUITTO_DISABLE_CPP 90endif 91 92MOSQUITTO_MAKE_DIRS = lib client 93ifeq ($(BR2_PACKAGE_MOSQUITTO_BROKER),y) 94MOSQUITTO_MAKE_DIRS += src 95endif 96 97define MOSQUITTO_BUILD_CMDS 98 $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ 99 $(MOSQUITTO_MAKE_OPTS) 100endef 101 102define MOSQUITTO_INSTALL_STAGING_CMDS 103 $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ 104 $(MOSQUITTO_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install 105endef 106 107define MOSQUITTO_INSTALL_TARGET_CMDS 108 $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) DIRS="$(MOSQUITTO_MAKE_DIRS)" \ 109 $(MOSQUITTO_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install 110 rm -f $(TARGET_DIR)/etc/mosquitto/*.example 111 $(INSTALL) -D -m 0644 $(@D)/mosquitto.conf \ 112 $(TARGET_DIR)/etc/mosquitto/mosquitto.conf 113endef 114 115ifeq ($(BR2_PACKAGE_MOSQUITTO_BROKER),y) 116define MOSQUITTO_INSTALL_INIT_SYSV 117 $(INSTALL) -D -m 0755 package/mosquitto/S50mosquitto \ 118 $(TARGET_DIR)/etc/init.d/S50mosquitto 119endef 120 121define MOSQUITTO_INSTALL_INIT_SYSTEMD 122 $(INSTALL) -D -m 644 $(@D)/service/systemd/mosquitto.service.notify \ 123 $(TARGET_DIR)/usr/lib/systemd/system/mosquitto.service 124endef 125 126define MOSQUITTO_USERS 127 mosquitto -1 nobody -1 * - - - Mosquitto user 128endef 129endif 130 131$(eval $(generic-package)) 132