Merge pull request #12123 from vKnmnn/master
[feed/packages.git] / net / mosquitto / Makefile
1 #
2 # Copyright (C) 2011-2013 OpenWrt.org
3 # Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org>
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=mosquitto
12 PKG_VERSION:=1.6.12
13 PKG_RELEASE:=1
14 PKG_LICENSE:=BSD-3-Clause
15 PKG_LICENSE_FILES:=LICENSE.txt
16 PKG_CPE_ID:=cpe:/a:eclipse:mosquitto
17
18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
19 PKG_SOURCE_URL:=https://mosquitto.org/files/source/
20 PKG_HASH:=548d73d19fb787dd0530334e398fd256ef3a581181678488a741a995c4f007fb
21
22 include $(INCLUDE_DIR)/package.mk
23
24 define Package/mosquitto/default
25 SECTION:=net
26 CATEGORY:=Network
27 TITLE:=mosquitto - an MQTT message broker
28 URL:=http://www.mosquitto.org/
29 MAINTAINER:=Karl Palsson <karlp@etactica.com>
30 DEPENDS:= +librt
31 USERID:=mosquitto=200:mosquitto=200
32 endef
33
34 define Package/mosquitto-ssl
35 $(call Package/mosquitto/default)
36 TITLE+= (with SSL support)
37 DEPENDS+= +libopenssl +MOSQUITTO_LWS:libwebsockets-openssl
38 VARIANT:=ssl
39 PROVIDES:=mosquitto
40 endef
41
42 define Package/mosquitto-nossl
43 $(call Package/mosquitto/default)
44 TITLE+= (without SSL support)
45 VARIANT:=nossl
46 PROVIDES:=mosquitto
47 endef
48
49 define Package/mosquitto-ssl/config
50 source "$(SOURCE)/Config.in"
51 endef
52
53 define Package/mosquitto/default/description
54 Mosquitto is an open source (BSD licensed) message broker that implements
55 the MQTT protocol version 3.1 and 3.1.1. MQTT provides a lightweight
56 method of carrying out messaging using a publish/subscribe model.
57
58 This package also includes some basic support for configuring via UCI
59 endef
60
61 define Package/mosquitto-ssl/description
62 $(call Package/mosquitto/default/description)
63 This package is built with SSL support. TLS-PSK will be included (in both
64 the client and broker) if OpenSSL is built with TLS-PSK support.
65 endef
66
67 define Package/mosquitto-nossl/description
68 $(call Package/mosquitto/default/description)
69 This package is built WITHOUT SSL support.
70 endef
71
72
73 define Package/mosquitto-client/default
74 $(Package/mosquitto/default)
75 TITLE:= mosquitto - client tools
76 DEPENDS+=+libcares
77 PROVIDES:=mosquitto-client
78 endef
79 define Package/mosquitto-client-ssl
80 $(call Package/mosquitto-client/default)
81 TITLE+= (With SSL support)
82 DEPENDS+=+libmosquitto-ssl
83 VARIANT:=ssl
84 endef
85 define Package/mosquitto-client-nossl
86 $(call Package/mosquitto-client/default)
87 TITLE+= (Without SSL support)
88 DEPENDS+=+libmosquitto-nossl
89 VARIANT:=nossl
90 endef
91
92 define Package/mosquitto-client/default/description
93 Command line client tools for publishing messages to MQTT servers
94 and subscribing to topics.
95 endef
96
97 define Package/mosquitto-client-ssl/description
98 $(call Package/mosquitto-client/default/description)
99 This package is built with SSL support
100 endef
101 define Package/mosquitto-client-nossl/description
102 $(call Package/mosquitto-client/default/description)
103 This package is built without SSL support
104 endef
105
106 define Package/libmosquitto/default
107 $(Package/mosquitto/default)
108 SECTION:=libs
109 CATEGORY:=Libraries
110 DEPENDS:=+libpthread +librt +libcares
111 TITLE:= mosquitto - client library
112 PROVIDES:=libmosquitto
113 endef
114
115 define Package/libmosquitto-ssl
116 $(call Package/libmosquitto/default)
117 TITLE+= (With SSL Support)
118 DEPENDS+= +libopenssl
119 VARIANT=ssl
120 endef
121 define Package/libmosquitto-nossl
122 $(call Package/libmosquitto/default)
123 TITLE+= (Without SSL Support)
124 VARIANT=nossl
125 endef
126
127 define Package/libmosquitto/default/description
128 Library required for mosquitto's command line client tools, also for
129 use by any third party software that wants to communicate with a
130 mosquitto server.
131
132 Should be useable for communicating with any MQTT v3.1/3.1.1 compatible
133 server, such as IBM's RSMB, in addition to Mosquitto
134 endef
135
136 define Package/libmosquitto-ssl/description
137 $(call Package/libmosquitto/default/description)
138 This package is built with SSL support
139 endef
140 define Package/libmosquitto-nossl/description
141 $(call Package/libmosquitto/default/description)
142 This package is built without SSL support
143 endef
144
145 define Package/libmosquittopp
146 SECTION:=libs
147 CATEGORY:=Libraries
148 DEPENDS:=libmosquitto +libstdcpp
149 TITLE:= mosquitto - client c++ library
150 endef
151
152 define Package/libmosquittopp/description
153 C++ Library wrapper for libmosquitto.
154 endef
155
156 define Package/mosquitto-ssl/conffiles
157 /etc/mosquitto/mosquitto.conf
158 /etc/config/mosquitto
159 endef
160
161 Package/mosquitto-nossl/conffiles = $(Package/mosquitto-ssl/conffiles)
162
163 define Package/mosquitto/install/default
164 $(INSTALL_DIR) $(1)/usr/sbin
165 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mosquitto $(1)/usr/sbin/mosquitto
166 $(INSTALL_DIR) $(1)/etc/mosquitto
167 $(INSTALL_CONF) $(PKG_BUILD_DIR)/mosquitto.conf $(1)/etc/mosquitto/mosquitto.conf
168 $(CP) ./files/* $(1)/
169 endef
170
171 define Package/mosquitto-nossl/install
172 $(call Package/mosquitto/install/default,$(1))
173 endef
174
175 define Package/mosquitto-ssl/install
176 $(call Package/mosquitto/install/default,$(1))
177 ifeq ($(CONFIG_MOSQUITTO_PASSWD),y)
178 $(INSTALL_DIR) $(1)/usr/bin
179 $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mosquitto_passwd $(1)/usr/bin
180 endif
181 endef
182
183 define Package/mosquitto-client-ssl/install
184 $(INSTALL_DIR) $(1)/usr/bin
185 $(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_pub $(1)/usr/bin/mosquitto_pub
186 $(INSTALL_BIN) $(PKG_BUILD_DIR)/client/mosquitto_sub $(1)/usr/bin/mosquitto_sub
187 endef
188 Package/mosquitto-client-nossl/install = $(Package/mosquitto-client-ssl/install)
189
190 # This installs files into ./staging_dir/. so that you can cross compile from the host
191 define Build/InstallDev
192 $(INSTALL_DIR) $(1)/usr/include
193 $(CP) $(PKG_BUILD_DIR)/lib/mosquitto.h $(1)/usr/include
194 $(CP) $(PKG_BUILD_DIR)/lib/cpp/mosquittopp.h $(1)/usr/include
195 $(CP) $(PKG_BUILD_DIR)/src/mosquitto_plugin.h $(1)/usr/include
196 $(CP) $(PKG_BUILD_DIR)/src/mosquitto_broker.h $(1)/usr/include
197 $(INSTALL_DIR) $(1)/usr/lib
198 $(CP) $(PKG_BUILD_DIR)/lib/libmosquitto.so.1 $(1)/usr/lib/
199 $(CP) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/
200 $(LN) libmosquitto.so.1 $(1)/usr/lib/libmosquitto.so
201 $(LN) libmosquittopp.so.1 $(1)/usr/lib/libmosquittopp.so
202 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
203 $(CP) $(PKG_BUILD_DIR)/libmosquitto.pc.in $(1)/usr/lib/pkgconfig/libmosquitto.pc
204 sed -i -e "s#@CMAKE_INSTALL_PREFIX@#/usr#" \
205 -e "s#@VERSION@#$(PKG_VERSION)#" \
206 $(1)/usr/lib/pkgconfig/libmosquitto.pc
207 $(CP) $(PKG_BUILD_DIR)/libmosquittopp.pc.in $(1)/usr/lib/pkgconfig/libmosquittopp.pc
208 sed -i -e "s#@CMAKE_INSTALL_PREFIX@#/usr#" \
209 -e "s#@VERSION@#$(PKG_VERSION)#" \
210 $(1)/usr/lib/pkgconfig/libmosquittopp.pc
211 endef
212
213 # This installs files on the target. Compare with Build/InstallDev
214 define Package/libmosquitto-ssl/install
215 $(INSTALL_DIR) $(1)/usr/lib
216 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/libmosquitto.so.1 $(1)/usr/lib/
217 $(LN) libmosquitto.so.1 $(1)/usr/lib/libmosquitto.so
218 endef
219 Package/libmosquitto-nossl/install = $(Package/libmosquitto-ssl/install)
220
221 define Package/libmosquittopp/install
222 $(INSTALL_DIR) $(1)/usr/lib
223 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/
224 $(LN) libmosquittopp.so.1 $(1)/usr/lib/libmosquittopp.so
225 endef
226
227 # Applies to all...
228 MAKE_FLAGS += WITH_DOCS=no UNAME=Linux
229 ifeq ($(BUILD_VARIANT),nossl)
230 MAKE_FLAGS += WITH_TLS=no WITH_WEBSOCKETS=no
231 else
232 MAKE_FLAGS += WITH_WEBSOCKETS=$(if $(CONFIG_MOSQUITTO_LWS),"yes","no")
233 MAKE_FLAGS += WITH_TLS_PSK=$(if $(CONFIG_OPENSSL_WITH_PSK),"yes","no")
234 endif
235
236 $(eval $(call BuildPackage,mosquitto-ssl))
237 $(eval $(call BuildPackage,mosquitto-nossl))
238 $(eval $(call BuildPackage,libmosquitto-ssl))
239 $(eval $(call BuildPackage,libmosquitto-nossl))
240 $(eval $(call BuildPackage,libmosquittopp))
241 $(eval $(call BuildPackage,mosquitto-client-ssl))
242 $(eval $(call BuildPackage,mosquitto-client-nossl))