# # Copyright (C) 2015-2018 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=libupm PKG_VERSION:=2.0.0 PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/intel-iot-devkit/upm/tar.gz/v$(PKG_VERSION)? PKG_HASH:=7dd2f4165b71e071d100b58d6a392f3cf57b0f257c82ffabf49e931b5ed6bc23 PKG_BUILD_DIR:=$(BUILD_DIR)/upm-$(PKG_VERSION) PKG_MAINTAINER:=John Crispin , Hirokazu MORIKAWA PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE CMAKE_INSTALL:=1 CMAKE_BINARY_SUBDIR:=build PKG_USE_MIPS16:=0 PYTHON3_PKG_BUILD:=0 include $(INCLUDE_DIR)/package.mk include ../../devel/ninja/ninja-cmake.mk include ../../lang/python/python3-package.mk UPM_MODULES:= \ a110x abp ad8232 adafruitms1438 adafruitss adc121c021 adis16448 ads1x15 adxl335 adxl345 \ adxrs610 am2315 apa102 apds9002 apds9930 at42qt1070 bh1749 bh1750 bh1792 biss0001 bma220 \ bma250e bmg160 bmi160 bmm150 bmp280 bmpx8x bmx055 bno055 button buzzer cjq4435 collision \ cwlsxxa dfrec dfrorp dfrph ds1307 ds1808lc ds18b20 ds2413 ecezo ecs1030 \ ehr eldriver electromagnet emg enc03r flex gas gp2y0a gprs \ gsr guvas12d h3lis331dl hcsr04 hdc1000 hdxxvxta hka5 hlg150h hm11 hmc5883l hmtrp hp20x \ ht9170 htu21d hx711 ili9341 ims ina132 interfaces isd1820 itg3200 jhd1313m1 joystick12 kx122 \ kxcjk1013 kxtj3 l298 l3gd20 lcd lcdks lcm1602 ldt0028 led lidarlitev3 light linefinder lis2ds12 \ lis3dh lm35 lol loudness lp8860 lpd8806 lsm303agr lsm303d lsm303dlh lsm6ds3h lsm6dsl lsm9ds0 \ m24lr64e mag3110 max30100 max31723 max31855 max44000 max44009 max5487 maxds3231m maxsonarez \ mb704x mcp2515 mcp9808 md mg811 mhz16 mic micsv89 mlx90614 mma7361 mma7455 mma7660 mma8x5x \ mmc35240 moisture mpl3115a2 mpr121 mpu9150 mq303a ms5611 ms5803 my9221 nlgpio16 nmea_gps \ nrf24l01 nrf8001 nunchuck o2 otp538u p9813 pca9685 pn532 ppd42ns pulsensor relay rf22 \ rfr359f rgbringcoder rhusb rn2903 rotary rotaryencoder rpr220 rsc scam sensortemplate \ servo sht1x si1132 si114x si7005 slide sm130 smartdrive speaker ssd1351 st7735 stepmotor \ sx1276 sx6119 t6713 ta12200 tca9548a tcs3414cs tcs37727 teams temperature \ tex00 th02 tm1637 tmp006 tsl2561 ttp223 uartat uln200xa ultrasonic urm37 utilities vdiv \ veml6070 water waterlevel wfs wheelencoder wt5001 xbee yg1006 zfm20 \ vcap t3311 hwxpxx h803x ozw curieimu # (require libbacnet) tb7300 t8100 e50hx bacnetmstp # (require libtinyb) 2jciebu01_ble 2jciebu01_usb CMAKE_OPTIONS += \ -DBUILDSWIGNODE=$(if $(CONFIG_PACKAGE_libmraa-node),ON,OFF) \ -DPYTHON2LIBS_FOUND=FALSE \ -DPYTHON2INTERP_FOUND=FALSE \ define Package/libupm/Default SECTION:=libs CATEGORY:=Libraries SUBMENU:=IoT URL:=https://github.com/intel-iot-devkit/upm DEPENDS:=+libmraa +librt endef define Package/libupm/Default/description UPM is a high level repository that provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform through calls to MRAA APIs. MRAA that allows you to use various sensors on platforms such as the Intel Galileo, Intel Edison, Minnowboard MAX and others. endef define Package/libupm $(call Package/libupm/Default) TITLE:=Intel IoT sensor library - Full DEPENDS+=+libjpeg +libmodbus +openzwave DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module)) DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module)-node) DEPENDS+= $(foreach module, $(UPM_MODULES), +libupm-$(module)-python3) endef define Package/libupm/description $(call Package/libupm/Default/description) This package contains sensor libraries endef define Package/libupm/install/Default $(INSTALL_DIR) $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libupm*-$(2).so* $(1)/usr/lib/ ; endef define Package/libupm/install/Default-node $(INSTALL_DIR) $(1)/usr/lib/node/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/jsupm_$(2) $(1)/usr/lib/node/ ; endef define Package/libupm/install/Default-python3 $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm $(CP) $(CMAKE_BINARY_DIR)/$(if $(filter interfaces, $(2)),,src/)$(2)/python$(PYTHON3_VERSION)/pyupm_$(2).py \ $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/_pyupm_$(2).so \ $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/upm/ ; endef define Package/libupm/install $(foreach module, $(UPM_MODULES), \ $(call Package/libupm/install/Default,$(1),$(module)) \ $(call Package/libupm/install/Default-node,$(1),$(module)) \ $(call Package/libupm/install/Default-python3,$(1),$(module))) endef define UpmPackage define UpmPackage/depends ifeq ($$(1),adafruitms1438) DEPENDS+=+libupm-pca9685 endif ifeq ($$(1),ads1x15) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),apa102) DEPENDS+=+libupm-utilities endif ifeq ($(1),bh1749) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bh1750) DEPENDS+=+libupm-utilities endif ifeq ($(1),bh1792) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bma250e) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bmg160) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bmi160) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bmm150) DEPENDS+=+libupm-utilities endif ifeq ($$(1),bmp280) DEPENDS+=+libupm-interfaces +libupm-utilities endif ifeq ($$(1),bmpx8x) DEPENDS+=+libupm-interfaces +libupm-utilities endif ifeq ($$(1),bmx055) DEPENDS+=+libupm-utilities +libupm-bma250e +libupm-bmg160 +libupm-bmm150 endif ifeq ($$(1),bno055) DEPENDS+=+libupm-utilities endif ifeq ($$(1),buzzer) DEPENDS+=+libupm-utilities endif ifeq ($$(1),cjq4435) DEPENDS+=+libupm-utilities endif ifeq ($$(1),dfrec) DEPENDS+=+libupm-utilities +libupm-ds18b20 endif ifeq ($$(1),ds18b20) DEPENDS+=+libupm-utilities endif ifeq ($$(1),dfrorp) DEPENDS+=+libupm-utilities endif ifeq ($$(1),ds1808lc) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),ecezo) DEPENDS+=+libupm-utilities endif ifeq ($$(1),enc03r) DEPENDS+=+libupm-utilities endif ifeq ($$(1),guvas12d) DEPENDS+=+libupm-utilities endif ifeq ($$(1),hcsr04) DEPENDS+=+libupm-utilities endif ifeq ($$(1),hka5) DEPENDS+=+libupm-utilities endif ifeq ($$(1),hlg150h) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),ims) DEPENDS+=+libupm-utilities endif ifeq ($$(1),jhd1313m1) DEPENDS+=+libupm-utilities +libupm-lcm1602 endif ifeq ($$(1),kxtj3) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lcm1602) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lcdks) DEPENDS+=+libupm-utilities +libupm-lcm1602 endif ifeq ($$(1),lis2ds12) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lis3dh) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lp8860) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),lsm303agr) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lsm303d) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lsm6ds3h) DEPENDS+=+libupm-utilities endif ifeq ($$(1),lsm6dsl) DEPENDS+=+libupm-utilities endif ifeq ($$(1),m24lr64e) DEPENDS+=+libupm-utilities endif ifeq ($$(1),max30100) DEPENDS+=+libupm-utilities endif ifeq ($$(1),max44009) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),mb704x) DEPENDS+=+libupm-utilities endif ifeq ($$(1),mcp2515) DEPENDS+=+libupm-utilities endif ifeq ($$(1),md) DEPENDS+=+libupm-utilities endif ifeq ($$(1),mma7361) DEPENDS+=+libupm-utilities endif ifeq ($$(1),ms5611) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),ms5803) DEPENDS+=+libupm-utilities endif ifeq ($$(1),my9221) DEPENDS+=+libupm-utilities endif ifeq ($$(1),nmea_gps) DEPENDS+=+libupm-utilities +libatomic endif ifeq ($$(1),nunchuck) DEPENDS+=+libupm-utilities endif ifeq ($$(1),otp538u) DEPENDS+=+libupm-utilities endif ifeq ($$(1),p9813) DEPENDS+=+libupm-utilities endif ifeq ($$(1),ppd42ns) DEPENDS+=+libupm-utilities endif ifeq ($$(1),rn2903) DEPENDS+=+libupm-utilities endif ifeq ($$(1),rsc) DEPENDS+=+libupm-utilities endif ifeq ($$(1),servo) DEPENDS+=+libupm-utilities endif ifeq ($$(1),sht1x) DEPENDS+=+libupm-utilities endif ifeq ($$(1),si1132) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),si7005) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),speaker) DEPENDS+=+libupm-utilities endif ifeq ($$(1),t6713) DEPENDS+=+libupm-interfaces endif ifeq ($$(1),tsl2561) DEPENDS+=+libupm-utilities endif ifeq ($$(1),uartat) DEPENDS+=+libupm-utilities endif ifeq ($$(1),uln200xa) DEPENDS+=+libupm-utilities endif ifeq ($$(1),urm37) DEPENDS+=+libupm-utilities endif ifeq ($$(1),wfs) DEPENDS+=+libupm-utilities endif ifeq ($$(1),zfm20) DEPENDS+=+libupm-utilities endif ifeq ($$(1),vcap) DEPENDS+=+libjpeg endif ifeq ($$(1),t3311) DEPENDS+=+libmodbus endif ifeq ($$(1),ozw) DEPENDS+=+openzwave endif ifeq ($$(1),hwxpxx) DEPENDS+=+libmodbus endif ifeq ($$(1),h803x) DEPENDS+=+libmodbus endif endef define Package/libupm-$(1) $(call Package/libupm/Default) $(call UpmPackage/depends,$(1)) TITLE:=$(1) C/C++ library endef define Package/libupm-$(1)/description $(call Package/libupm/Default/description) This package contains $(1) sensor C/C++ library endef define Package/libupm-$(1)-node $(call Package/libupm/Default) $(call UpmPackage/depends,$(1)) TITLE:=$(1) Node.js library DEPENDS+=+libupm-$(1) +libmraa-node endef define Package/libupm-$(1)-node/description $(call Package/libupm/Default/description) This package contains $(1) sensor Node.js library endef define Package/libupm-$(1)-python3 $(call Package/libupm/Default) $(call UpmPackage/depends,$(1)) TITLE:=$(1) Python3 library DEPENDS+=+libupm-$(1) +libmraa-python3 +python3-light endef define Package/libupm-$(1)-python3/description $(call Package/libupm/Default/description) This package contains $(1) sensor Python3 library endef define Package/libupm-$(1)/install $(call Package/libupm/install/Default,$$(1),$(1)) endef define Package/libupm-$(1)-node/install $(call Package/libupm/install/Default-node,$$(1),$(1)) endef define Package/libupm-$(1)-python3/install $(call Package/libupm/install/Default-python3,$$(1),$(1)) endef endef $(eval $(call BuildPackage,libupm)) $(foreach module, $(UPM_MODULES), \ $(eval $(call UpmPackage,$(module))) \ $(eval $(call BuildPackage,libupm-$(module))) \ $(eval $(call BuildPackage,libupm-$(module)-node)) \ $(eval $(call BuildPackage,libupm-$(module)-python3)))