xref: /OK3568_Linux_fs/buildroot/package/mosquitto/mosquitto.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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