Merge pull request #8518 from neheb/i
[feed/packages.git] / lang / node-cylon / Makefile
1 #
2 # Copyright (C) 2014 Arduino LLC
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_NPM_NAME:=cylon
11 PKG_NAME:=node-$(PKG_NPM_NAME)
12 PKG_SRC_NAME:=$(PKG_NPM_NAME)-firmata
13 PKG_VERSION:=0.24.0
14 PKG_RELEASE:=3
15
16 PKG_SOURCE:=$(PKG_SRC_NAME)-$(PKG_VERSION).tgz
17 PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_SRC_NAME)/-/
18 PKG_HASH:=06ac7a8e2e6012577d2f4b043af766bf28a1d3e2a0d50e46629dab4f0bb65104
19 PKG_SOURCE_SUBDIR:=$(PKG_SRC_NAME)-$(PKG_VERSION)
20
21 PKG_BUILD_DEPENDS:=node/host
22 PKG_USE_MIPS16:=0
23
24 PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>
25 PKG_LICENSE:=Apache-2.0
26 PKG_LICENSE_FILES:=LICENSE
27
28 include $(INCLUDE_DIR)/package.mk
29
30 define Package/node-cylon/default
31 SUBMENU:=Node.js
32 SECTION:=lang
33 CATEGORY:=Languages
34 TITLE:=CylonJS - $(1)
35 URL:=https://www.npmjs.org/package/cylon-firmata
36 DEPENDS:=+node +node-npm $(2)
37 endef
38
39 define Package/node-cylon
40 $(call Package/node-cylon/default,Core)
41 endef
42
43 define Package/node-cylon-i2c
44 $(call Package/node-cylon/default,I2C,+node-cylon)
45 endef
46
47 define Package/node-cylon-gpio
48 $(call Package/node-cylon/default,GPIO,+node-cylon)
49 endef
50
51 define Package/node-cylon-firmata
52 $(call Package/node-cylon/default,Firmata,+node-cylon-gpio +node-cylon-i2c +node-arduino-firmata)
53 endef
54
55 define Package/node-cylon/description
56 JavaScript Robotics, By Your Command Next generation robotics framework with support for 36 different platforms Get Started
57 endef
58
59 TAR_OPTIONS+= --strip-components 1
60 TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
61
62 NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
63
64 define Build/Compile
65 $(MAKE_VARS) \
66 $(MAKE_FLAGS) \
67 npm_config_arch=$(NODEJS_CPU) \
68 npm_config_target_arch=$(NODEJS_CPU) \
69 npm_config_build_from_source=true \
70 npm_config_nodedir=$(STAGING_DIR)/usr/ \
71 npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
72 npm_config_cache=$(TMP_DIR)/npm-cache \
73 npm_config_tmp=$(TMP_DIR)/npm-tmp \
74 npm install -g $(PKG_BUILD_DIR)
75 rm -rf $(TMP_DIR)/npm-tmp
76 rm -rf $(TMP_DIR)/npm-cache
77 endef
78
79 define Package/node-cylon/install
80 $(INSTALL_DIR) $(1)/usr/lib/node/cylon
81 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon/* $(1)/usr/lib/node/cylon/
82 endef
83
84 define Package/node-cylon-i2c/install
85 $(INSTALL_DIR) $(1)/usr/lib/node/cylon-i2c
86 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-i2c/* $(1)/usr/lib/node/cylon-i2c/
87 endef
88
89 define Package/node-cylon-gpio/install
90 $(INSTALL_DIR) $(1)/usr/lib/node/cylon-gpio
91 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-gpio/* $(1)/usr/lib/node/cylon-gpio/
92 endef
93
94 define Package/node-cylon-firmata/install
95 $(INSTALL_DIR) $(1)/usr/lib/node/cylon-firmata
96 $(CP) $(PKG_BUILD_DIR)/{package.json,LICENSE,*.md} \
97 $(1)/usr/lib/node/cylon-firmata/
98 $(CP) $(PKG_BUILD_DIR)/{docs,examples,*.js} \
99 $(1)/usr/lib/node/cylon-firmata/
100 $(CP) $(PKG_BUILD_DIR)/{lib,spec} \
101 $(1)/usr/lib/node/cylon-firmata/
102 endef
103
104 $(eval $(call BuildPackage,node-cylon))
105 $(eval $(call BuildPackage,node-cylon-i2c))
106 $(eval $(call BuildPackage,node-cylon-gpio))
107 $(eval $(call BuildPackage,node-cylon-firmata))