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