Merge pull request #1895 from yousong/add-pppossh
[feed/packages.git] / net / iotivity / Makefile
1 #
2 # Copyright (C) 2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=iotivity
11 PKG_VERSION:=1.0.0
12 PKG_RELEASE=1
13
14 PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz
15 PKG_SOURCE_URL:=https://downloads.iotivity.org/${PKG_VERSION}/ \
16 http://mirrors.kernel.org/${PKG_NAME}/${PKG_VERSION}/
17 PKG_MD5SUM:=4bcbabffc1734c664bbdf8fedfa60543
18 PKG_USE_MIPS16:=0
19
20 PKG_MAINTAINER:=Hauke Mehrtens <hauke.mehrtens@lantiq.com>
21
22 PKG_LICENSE:=Apache-2.0
23 PKG_LICENSE_FILES:=LICENSE.md
24
25 include $(INCLUDE_DIR)/package.mk
26 include $(INCLUDE_DIR)/scons.mk
27
28
29 define Package/iotivity
30 SECTION:=net
31 CATEGORY:=Network
32 DEPENDS:=@!USE_UCLIBC +libpthread +librt +libuuid
33 TITLE:=IoTivity C Library
34 URL:=https://www.iotivity.org
35 endef
36
37 define Package/iotivity/description
38 IoTivity is a framework for the Internet of Things based on the
39 Open Interconnect Consortium Specification.
40 endef
41
42
43 define Package/iotivity-cpp
44 SECTION:=net
45 CATEGORY:=Network
46 DEPENDS:=iotivity +libpthread +libstdcpp
47 TITLE:=IoTivity C++ Library
48 URL:=https://www.iotivity.org
49 endef
50
51 define Package/iotivity-cpp/description
52 IoTivity is a framework for the Internet of Things based on the
53 Open Interconnect Consortium Specification.
54 endef
55
56
57 define Package/iotivity-things-manager-lib
58 SECTION:=net
59 CATEGORY:=Network
60 DEPENDS:=iotivity +iotivity-cpp +libstdcpp
61 TITLE:=IoTivity things manager lib
62 URL:=https://www.iotivity.org
63 endef
64
65 define Package/iotivity-things-manager-lib/description
66 IoTivity things-manager lib
67 endef
68
69
70 define Package/iotivity-oic-middle
71 SECTION:=net
72 CATEGORY:=Network
73 DEPENDS:=iotivity +iotivity-cpp
74 TITLE:=IoTivity OIC Middle
75 URL:=https://www.iotivity.org
76 endef
77
78 define Package/iotivity-oic-middle/description
79 IoTivity OIC Middle
80 endef
81
82
83 define Package/iotivity-things-manager
84 SECTION:=net
85 CATEGORY:=Network
86 DEPENDS:=iotivity +iotivity-cpp +iotivity-things-manager-lib
87 TITLE:=IoTivity things manager
88 URL:=https://www.iotivity.org
89 endef
90
91 define Package/iotivity-things-manager/description
92 IoTivity things manager
93 endef
94
95 define Package/iotivity-resource-container-lib
96 SECTION:=net
97 CATEGORY:=Network
98 DEPENDS:=iotivity +iotivity-cpp +boost-system +boost-thread +boost-date_time
99 TITLE:=IoTivity Resource Container library
100 URL:=https://www.iotivity.org
101 endef
102
103 define Package/iotivity-resource-container-sample
104 SECTION:=net
105 CATEGORY:=Network
106 DEPENDS:=iotivity +iotivity-resource-container-lib
107 TITLE:=IoTivity Resource Container sample Application
108 URL:=https://www.iotivity.org
109 endef
110
111 define Package/iotivity-resource-container-hue
112 SECTION:=net
113 CATEGORY:=Network
114 DEPENDS:=iotivity +iotivity-resource-container-lib +libcurl
115 TITLE:=IoTivity Resource Container Hue Bundle
116 URL:=https://www.iotivity.org
117 endef
118
119 define Package/iotivity-example-garage
120 SECTION:=net
121 CATEGORY:=Network
122 DEPENDS:=iotivity +iotivity-cpp
123 TITLE:=IoTivity Garage example
124 URL:=https://www.iotivity.org
125 endef
126
127 define Package/iotivity-example-garage/description
128 An IoTivity example application
129 endef
130
131
132 PKG_TINYCBOR_NAME:=tinycbor
133 PKG_TINYCBOR_VERSION:=43e3ac9490cf19459ec7b7bd13df3b66810fb62a
134 PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
135 PKG_TINYCBOR_PROTO:=git
136 PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
137 PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
138 #PKG_TINYCBOR_MIRROR_MD5SUM:=?
139
140 define Download/iotivity-tinycbor
141 FILE:=$(PKG_TINYCBOR_SOURCE)
142 URL:=$(PKG_TINYCBOR_SOURCE_URL)
143 PROTO:=$(PKG_TINYCBOR_PROTO)
144 VERSION:=$(PKG_TINYCBOR_VERSION)
145 SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
146 #MIRROR_MD5SUM:=$(PKG_TINYCBOR_MIRROR_MD5SUM)
147 endef
148 $(eval $(call Download,iotivity-tinycbor))
149
150 PKG_SQLITE_NAME:=sqlite
151 PKG_SQLITE_VERSION:=3081101
152 PKG_SQLITE_SOURCE:=$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION).zip
153 PKG_SQLITE_SOURCE_URL:=http://www.sqlite.org/2015/
154 PKG_SQLITE_SUBDIR:=$(PKG_SQLITE_NAME)
155 PKG_SQLITE_MD5SUM:=94907e831502e2080b76e281cfa24dde
156
157 define Download/iotivity-sqlite
158 FILE:=$(PKG_SQLITE_SOURCE)
159 URL:=$(PKG_SQLITE_SOURCE_URL)
160 VERSION:=$(PKG_SQLITE_VERSION)
161 SUBDIR:=$(PKG_SQLITE_SUBDIR)
162 MD5SUM:=$(PKG_SQLITE_MD5SUM)
163 endef
164 $(eval $(call Download,iotivity-sqlite))
165
166
167 SCONS_OPTIONS += \
168 TARGET_OS=linux \
169 TARGET_TRANSPORT=IP \
170 TARGET_ARCH=$(ARCH) \
171 STAGING_DIR=$(STAGING_DIR) \
172 LOGGING=true \
173 SECURED=1 \
174 $(if $(CONFIG_PACKAGE_iotivity),liboctbstack) \
175 $(if $(CONFIG_PACKAGE_iotivity-cpp),liboc) \
176 $(if $(CONFIG_PACKAGE_iotivity-things-manager-lib),libTGMSDK) \
177 $(if $(CONFIG_PACKAGE_iotivity-oic-middle),samples) \
178 $(if $(CONFIG_PACKAGE_iotivity-things-manager),ConServerApp ConClientApp BootstrapServerApp) \
179 $(if $(CONFIG_PACKAGE_iotivity-resource-container-lib),libResContainer) \
180 $(if $(CONFIG_PACKAGE_iotivity-resource-container-sample),containersample) \
181 $(if $(CONFIG_PACKAGE_iotivity-resource-container-hue),libHueBundle) \
182 $(if $(CONFIG_PACKAGE_iotivity-example-garage),examples) \
183
184
185 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
186 SCONS_OPTIONS += VERBOSE=true
187 endif
188
189 define Build/Prepare
190 $(call Build/Prepare/Default)
191 $(TAR) -C $(PKG_BUILD_DIR)/extlibs/tinycbor/ -xjf $(DL_DIR)/$(PKG_TINYCBOR_SOURCE)
192 unzip -d $(PKG_BUILD_DIR)/extlibs/sqlite3/ $(DL_DIR)/$(PKG_SQLITE_SOURCE)
193 mv $(PKG_BUILD_DIR)/extlibs/sqlite3/$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION)/sqlite3.h $(PKG_BUILD_DIR)/extlibs/sqlite3/
194 mv $(PKG_BUILD_DIR)/extlibs/sqlite3/$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION)/sqlite3.c $(PKG_BUILD_DIR)/extlibs/sqlite3/
195 endef
196
197
198 define Build/Configure
199 (cd $(PKG_BUILD_DIR); \
200 $(SCONS_VARS) \
201 scons \
202 $(SCONS_OPTIONS) \
203 )
204 endef
205
206
207 define Package/iotivity/install
208 $(INSTALL_DIR) $(1)/usr/lib
209 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/
210 endef
211
212 define Package/iotivity-cpp/install
213 $(INSTALL_DIR) $(1)/usr/lib
214 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/
215 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/
216 endef
217
218 define Package/iotivity-things-manager-lib/install
219 $(INSTALL_DIR) $(1)/usr/lib
220 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/
221 endef
222
223 define Package/iotivity-oic-middle/install
224 $(INSTALL_DIR) $(1)/usr/bin
225 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/
226 endef
227
228 define Package/iotivity-things-manager/install
229 $(INSTALL_DIR) $(1)/usr/bin
230 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/
231 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/
232 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/
233 endef
234
235 define Package/iotivity-resource-container-lib/install
236 $(INSTALL_DIR) $(1)/usr/lib
237 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_common.so $(1)/usr/lib/
238 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_client.so $(1)/usr/lib/
239 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_server.so $(1)/usr/lib/
240 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_container.so $(1)/usr/lib/
241 endef
242
243 define Package/iotivity-resource-container-sample/install
244 $(INSTALL_DIR) $(1)/usr/bin
245 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/resource-container/ContainerSample $(1)/usr/bin/
246 endef
247
248 define Package/iotivity-resource-container-hue/install
249 $(INSTALL_DIR) $(1)/usr/lib
250 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libHueBundle.so $(1)/usr/lib/
251 endef
252
253 define Package/iotivity-example-garage/install
254 $(INSTALL_DIR) $(1)/usr/bin
255 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/
256 $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/
257 endef
258
259
260 $(eval $(call BuildPackage,iotivity))
261 $(eval $(call BuildPackage,iotivity-cpp))
262 $(eval $(call BuildPackage,iotivity-things-manager-lib))
263 $(eval $(call BuildPackage,iotivity-oic-middle))
264 $(eval $(call BuildPackage,iotivity-things-manager))
265 $(eval $(call BuildPackage,iotivity-resource-container-lib))
266 $(eval $(call BuildPackage,iotivity-resource-container-sample))
267 $(eval $(call BuildPackage,iotivity-resource-container-hue))
268 $(eval $(call BuildPackage,iotivity-example-garage))