303b26ba28dd483d15ff870bfb5738f9369272dd
[feed/packages.git] / libs / libupm / Makefile
1 #
2 # Copyright (C) 2015-2018 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:=libupm
11 PKG_VERSION:=2.0.0
12 PKG_RELEASE:=4
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://codeload.github.com/intel-iot-devkit/upm/tar.gz/v$(PKG_VERSION)?
16 PKG_HASH:=7dd2f4165b71e071d100b58d6a392f3cf57b0f257c82ffabf49e931b5ed6bc23
17 PKG_BUILD_DIR:=$(BUILD_DIR)/upm-$(PKG_VERSION)
18
19 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>, Hirokazu MORIKAWA <morikw2@gmail.com>
20 PKG_LICENSE:=MIT
21 PKG_LICENSE_FILES:=LICENSE
22
23 CMAKE_INSTALL:=1
24 CMAKE_BINARY_SUBDIR:=build
25 PKG_USE_MIPS16:=0
26 PKG_BUILD_PARALLEL:=1
27 PYTHON3_PKG_BUILD:=0
28
29 include $(INCLUDE_DIR)/package.mk
30 include $(INCLUDE_DIR)/cmake.mk
31 include ../../lang/python/python3-package.mk
32
33 UPM_MODULES:= \
34 a110x abp ad8232 adafruitms1438 adafruitss adc121c021 adis16448 ads1x15 adxl335 adxl345 \
35 adxrs610 am2315 apa102 apds9002 apds9930 at42qt1070 bh1749 bh1750 bh1792 biss0001 bma220 \
36 bma250e bmg160 bmi160 bmm150 bmp280 bmpx8x bmx055 bno055 button buzzer cjq4435 collision \
37 cwlsxxa dfrec dfrorp dfrph ds1307 ds1808lc ds18b20 ds2413 ecezo ecs1030 \
38 ehr eldriver electromagnet emg enc03r flex gas gp2y0a gprs \
39 gsr guvas12d h3lis331dl hcsr04 hdc1000 hdxxvxta hka5 hlg150h hm11 hmc5883l hmtrp hp20x \
40 ht9170 htu21d hx711 ili9341 ims ina132 interfaces isd1820 itg3200 jhd1313m1 joystick12 kx122 \
41 kxcjk1013 kxtj3 l298 l3gd20 lcd lcdks lcm1602 ldt0028 led lidarlitev3 light linefinder lis2ds12 \
42 lis3dh lm35 lol loudness lp8860 lpd8806 lsm303agr lsm303d lsm303dlh lsm6ds3h lsm6dsl lsm9ds0 \
43 m24lr64e mag3110 max30100 max31723 max31855 max44000 max44009 max5487 maxds3231m maxsonarez \
44 mb704x mcp2515 mcp9808 md mg811 mhz16 mic micsv89 mlx90614 mma7361 mma7455 mma7660 mma8x5x \
45 mmc35240 moisture mpl3115a2 mpr121 mpu9150 mq303a ms5611 ms5803 my9221 nlgpio16 nmea_gps \
46 nrf24l01 nrf8001 nunchuck o2 otp538u p9813 pca9685 pn532 ppd42ns pulsensor relay rf22 \
47 rfr359f rgbringcoder rhusb rn2903 rotary rotaryencoder rpr220 rsc scam sensortemplate \
48 servo sht1x si1132 si114x si7005 slide sm130 smartdrive speaker ssd1351 st7735 stepmotor \
49 sx1276 sx6119 t6713 ta12200 tca9548a tcs3414cs tcs37727 teams temperature \
50 tex00 th02 tm1637 tmp006 tsl2561 ttp223 uartat uln200xa ultrasonic urm37 utilities vdiv \
51 veml6070 water waterlevel wfs wheelencoder wt5001 xbee yg1006 zfm20 \
52 vcap t3311 hwxpxx h803x ozw curieimu
53 # (require libbacnet) tb7300 t8100 e50hx bacnetmstp
54 # (require libtinyb) 2jciebu01_ble 2jciebu01_usb
55
56 CMAKE_OPTIONS=-DBUILDSWIGNODE=$(if $(CONFIG_PACKAGE_libmraa-node),ON,OFF) \
57 -DPYTHON2LIBS_FOUND=FALSE \
58 -DPYTHON2INTERP_FOUND=FALSE \
59
60 define Package/libupm/Default
61 SECTION:=libs
62 CATEGORY:=Libraries
63 SUBMENU:=IoT
64 URL:=https://github.com/intel-iot-devkit/upm
65 DEPENDS:=+libmraa +librt
66 endef
67
68 define Package/libupm/Default/description
69 UPM is a high level repository that provides software drivers for a wide variety
70 of commonly used sensors and actuators. These software drivers interact with the
71 underlying hardware platform through calls to MRAA APIs.
72 MRAA that allows you to use various sensors on platforms such as the Intel Galileo,
73 Intel Edison, Minnowboard MAX and others.
74 endef
75
76 define Package/libupm
77 $(call Package/libupm/Default)
78 TITLE:=Intel IoT sensor library - Full
79 DEPENDS+=+libjpeg +libmodbus +openzwave
80 DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module))
81 DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module)-node)
82 DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module)-python3)
83 endef
84
85 define Package/libupm/description
86 $(call Package/libupm/Default/description)
87
88 This package contains sensor libraries
89 endef
90
91 define Package/libupm/install/Default
92 $(INSTALL_DIR) $(1)/usr/lib/
93 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libupm*-$(2).so* $(1)/usr/lib/ ;
94 endef
95
96 define Package/libupm/install/Default-node
97 $(INSTALL_DIR) $(1)/usr/lib/node/
98 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/jsupm_$(2) $(1)/usr/lib/node/ ;
99 endef
100
101 define Package/libupm/install/Default-python3
102 $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm
103 $(CP) $(CMAKE_BINARY_DIR)/$(if $(filter interfaces, $(2)),,src/)$(2)/python$(PYTHON3_VERSION)/pyupm_$(2).py \
104 $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/
105 $(CP) $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/_pyupm_$(2).so \
106 $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/ ;
107 endef
108
109 define Package/libupm/install
110 $(foreach module, $(UPM_MODULES), \
111 $(call Package/libupm/install/Default,$(1),$(module)) \
112 $(call Package/libupm/install/Default-node,$(1),$(module)) \
113 $(call Package/libupm/install/Default-python3,$(1),$(module)))
114 endef
115
116 define UpmPackage
117 define UpmPackage/depends
118 ifeq ($$(1),adafruitms1438)
119 DEPENDS+=+libupm-pca9685
120 endif
121 ifeq ($$(1),ads1x15)
122 DEPENDS+=+libupm-interfaces
123 endif
124 ifeq ($$(1),apa102)
125 DEPENDS+=+libupm-utilities
126 endif
127 ifeq ($(1),bh1749)
128 DEPENDS+=+libupm-utilities
129 endif
130 ifeq ($$(1),bh1750)
131 DEPENDS+=+libupm-utilities
132 endif
133 ifeq ($(1),bh1792)
134 DEPENDS+=+libupm-utilities
135 endif
136 ifeq ($$(1),bma250e)
137 DEPENDS+=+libupm-utilities
138 endif
139 ifeq ($$(1),bmg160)
140 DEPENDS+=+libupm-utilities
141 endif
142 ifeq ($$(1),bmi160)
143 DEPENDS+=+libupm-utilities
144 endif
145 ifeq ($$(1),bmm150)
146 DEPENDS+=+libupm-utilities
147 endif
148 ifeq ($$(1),bmp280)
149 DEPENDS+=+libupm-interfaces +libupm-utilities
150 endif
151 ifeq ($$(1),bmpx8x)
152 DEPENDS+=+libupm-interfaces +libupm-utilities
153 endif
154 ifeq ($$(1),bmx055)
155 DEPENDS+=+libupm-utilities +libupm-bma250e +libupm-bmg160 +libupm-bmm150
156 endif
157 ifeq ($$(1),bno055)
158 DEPENDS+=+libupm-utilities
159 endif
160 ifeq ($$(1),buzzer)
161 DEPENDS+=+libupm-utilities
162 endif
163 ifeq ($$(1),cjq4435)
164 DEPENDS+=+libupm-utilities
165 endif
166 ifeq ($$(1),dfrec)
167 DEPENDS+=+libupm-utilities +libupm-ds18b20
168 endif
169 ifeq ($$(1),ds18b20)
170 DEPENDS+=+libupm-utilities
171 endif
172 ifeq ($$(1),dfrorp)
173 DEPENDS+=+libupm-utilities
174 endif
175 ifeq ($$(1),ds1808lc)
176 DEPENDS+=+libupm-interfaces
177 endif
178 ifeq ($$(1),ecezo)
179 DEPENDS+=+libupm-utilities
180 endif
181 ifeq ($$(1),enc03r)
182 DEPENDS+=+libupm-utilities
183 endif
184 ifeq ($$(1),guvas12d)
185 DEPENDS+=+libupm-utilities
186 endif
187 ifeq ($$(1),hcsr04)
188 DEPENDS+=+libupm-utilities
189 endif
190 ifeq ($$(1),hka5)
191 DEPENDS+=+libupm-utilities
192 endif
193 ifeq ($$(1),hlg150h)
194 DEPENDS+=+libupm-interfaces
195 endif
196 ifeq ($$(1),ims)
197 DEPENDS+=+libupm-utilities
198 endif
199 ifeq ($$(1),jhd1313m1)
200 DEPENDS+=+libupm-utilities +libupm-lcm1602
201 endif
202 ifeq ($$(1),kxtj3)
203 DEPENDS+=+libupm-utilities
204 endif
205 ifeq ($$(1),lcm1602)
206 DEPENDS+=+libupm-utilities
207 endif
208 ifeq ($$(1),lcdks)
209 DEPENDS+=+libupm-utilities +libupm-lcm1602
210 endif
211 ifeq ($$(1),lis2ds12)
212 DEPENDS+=+libupm-utilities
213 endif
214 ifeq ($$(1),lis3dh)
215 DEPENDS+=+libupm-utilities
216 endif
217 ifeq ($$(1),lp8860)
218 DEPENDS+=+libupm-interfaces
219 endif
220 ifeq ($$(1),lsm303agr)
221 DEPENDS+=+libupm-utilities
222 endif
223 ifeq ($$(1),lsm303d)
224 DEPENDS+=+libupm-utilities
225 endif
226 ifeq ($$(1),lsm6ds3h)
227 DEPENDS+=+libupm-utilities
228 endif
229 ifeq ($$(1),lsm6dsl)
230 DEPENDS+=+libupm-utilities
231 endif
232 ifeq ($$(1),m24lr64e)
233 DEPENDS+=+libupm-utilities
234 endif
235 ifeq ($$(1),max30100)
236 DEPENDS+=+libupm-utilities
237 endif
238 ifeq ($$(1),max44009)
239 DEPENDS+=+libupm-interfaces
240 endif
241 ifeq ($$(1),mb704x)
242 DEPENDS+=+libupm-utilities
243 endif
244 ifeq ($$(1),mcp2515)
245 DEPENDS+=+libupm-utilities
246 endif
247 ifeq ($$(1),md)
248 DEPENDS+=+libupm-utilities
249 endif
250 ifeq ($$(1),mma7361)
251 DEPENDS+=+libupm-utilities
252 endif
253 ifeq ($$(1),ms5611)
254 DEPENDS+=+libupm-interfaces
255 endif
256 ifeq ($$(1),ms5803)
257 DEPENDS+=+libupm-utilities
258 endif
259 ifeq ($$(1),my9221)
260 DEPENDS+=+libupm-utilities
261 endif
262 ifeq ($$(1),nmea_gps)
263 DEPENDS+=+libupm-utilities +libatomic
264 endif
265 ifeq ($$(1),nunchuck)
266 DEPENDS+=+libupm-utilities
267 endif
268 ifeq ($$(1),otp538u)
269 DEPENDS+=+libupm-utilities
270 endif
271 ifeq ($$(1),p9813)
272 DEPENDS+=+libupm-utilities
273 endif
274 ifeq ($$(1),ppd42ns)
275 DEPENDS+=+libupm-utilities
276 endif
277 ifeq ($$(1),rn2903)
278 DEPENDS+=+libupm-utilities
279 endif
280 ifeq ($$(1),rsc)
281 DEPENDS+=+libupm-utilities
282 endif
283 ifeq ($$(1),servo)
284 DEPENDS+=+libupm-utilities
285 endif
286 ifeq ($$(1),sht1x)
287 DEPENDS+=+libupm-utilities
288 endif
289 ifeq ($$(1),si1132)
290 DEPENDS+=+libupm-interfaces
291 endif
292 ifeq ($$(1),si7005)
293 DEPENDS+=+libupm-interfaces
294 endif
295 ifeq ($$(1),speaker)
296 DEPENDS+=+libupm-utilities
297 endif
298 ifeq ($$(1),t6713)
299 DEPENDS+=+libupm-interfaces
300 endif
301 ifeq ($$(1),tsl2561)
302 DEPENDS+=+libupm-utilities
303 endif
304 ifeq ($$(1),uartat)
305 DEPENDS+=+libupm-utilities
306 endif
307 ifeq ($$(1),uln200xa)
308 DEPENDS+=+libupm-utilities
309 endif
310 ifeq ($$(1),urm37)
311 DEPENDS+=+libupm-utilities
312 endif
313 ifeq ($$(1),wfs)
314 DEPENDS+=+libupm-utilities
315 endif
316 ifeq ($$(1),zfm20)
317 DEPENDS+=+libupm-utilities
318 endif
319 ifeq ($$(1),vcap)
320 DEPENDS+=+libjpeg
321 endif
322 ifeq ($$(1),t3311)
323 DEPENDS+=+libmodbus
324 endif
325 ifeq ($$(1),ozw)
326 DEPENDS+=+openzwave
327 endif
328 ifeq ($$(1),hwxpxx)
329 DEPENDS+=+libmodbus
330 endif
331 ifeq ($$(1),h803x)
332 DEPENDS+=+libmodbus
333 endif
334 endef
335
336 define Package/libupm-$(1)
337 $(call Package/libupm/Default)
338 $(call UpmPackage/depends,$(1))
339 TITLE:=$(1) C/C++ library
340 endef
341
342 define Package/libupm-$(1)/description
343 $(call Package/libupm/Default/description)
344
345 This package contains $(1) sensor C/C++ library
346 endef
347
348 define Package/libupm-$(1)-node
349 $(call Package/libupm/Default)
350 $(call UpmPackage/depends,$(1))
351 TITLE:=$(1) Node.js library
352 DEPENDS+=+libupm-$(1) +libmraa-node
353 endef
354
355 define Package/libupm-$(1)-node/description
356 $(call Package/libupm/Default/description)
357
358 This package contains $(1) sensor Node.js library
359 endef
360
361 define Package/libupm-$(1)-python3
362 $(call Package/libupm/Default)
363 $(call UpmPackage/depends,$(1))
364 TITLE:=$(1) Python3 library
365 DEPENDS+=+libupm-$(1) +libmraa-python3 +python3-light
366 endef
367
368 define Package/libupm-$(1)-python3/description
369 $(call Package/libupm/Default/description)
370
371 This package contains $(1) sensor Python3 library
372 endef
373
374 define Package/libupm-$(1)/install
375 $(call Package/libupm/install/Default,$$(1),$(1))
376 endef
377 define Package/libupm-$(1)-node/install
378 $(call Package/libupm/install/Default-node,$$(1),$(1))
379 endef
380 define Package/libupm-$(1)-python3/install
381 $(call Package/libupm/install/Default-python3,$$(1),$(1))
382 endef
383 endef
384
385 $(eval $(call BuildPackage,libupm))
386 $(foreach module, $(UPM_MODULES), \
387 $(eval $(call UpmPackage,$(module))) \
388 $(eval $(call BuildPackage,libupm-$(module))) \
389 $(eval $(call BuildPackage,libupm-$(module)-node)) \
390 $(eval $(call BuildPackage,libupm-$(module)-python3)))