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