blob: c8f755060cc3ac0a819137ca17b2f1b5365564a1 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001# This is free software, licensed under the GNU General Public License v2.
2# See /LICENSE for more information.
3#
4
5include $(TOPDIR)/rules.mk
6
7PKG_NPM_NAME:=javascript-obfuscator
8PKG_NAME:=node-$(PKG_NPM_NAME)
9PKG_VERSION:=2.9.4
10PKG_RELEASE:=1
11
12PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
13PKG_SOURCE_URL:=https://registry.npmjs.org/$(PKG_NPM_NAME)/-/
14PKG_HASH:=db443ed7c07a7a111352dac4aa7c6edd7969f97386f37c1cfe884d5a8c5f5408
15
16PKG_BUILD_DEPENDS:=node/host
17HOST_BUILD_PARALLEL:=1
18
19HOST_BUILD_DEPENDS:=node/host
20PKG_BUILD_PARALLEL:=1
21PKG_USE_MIPS16:=0
22
23PKG_MAINTAINER:=Zbynek Kocur <zbynek.kocur@fel.cvut.cz>
24PKG_LICENSE:=BSD-2-Clause
25PKG_LICENSE_FILES:=LICENSE.BSD
26
27include $(INCLUDE_DIR)/host-build.mk
28include $(INCLUDE_DIR)/package.mk
29
30define Package/node-javascript-obfuscator
31 SUBMENU:=Node.js
32 SECTION:=lang
33 CATEGORY:=Languages
34 TITLE:=JavaScript obfuscator
35 URL:=https://www.npmjs.org/package/javascript-obfuscator
36 DEPENDS:=+node
37endef
38
39define Package/node-javascript-obfuscator/description
40 JavaScript obfuscator is a powerful free obfuscator for JavaScript with a wide number of features which provides protection for your source code.
41endef
42
43TAR_OPTIONS+= --strip-components 1
44TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
45
46NODEJS_CPU:=$(subst powerpc,ppc,$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH)))))
47TMPNPM:=$(shell mktemp -u XXXXXXXXXX)
48HOSTTMPNPM:=$(shell mktemp -u XXXXXXXXXX)
49
50TARGET_CFLAGS+=$(FPIC)
51TARGET_CPPFLAGS+=$(FPIC)
52
53define Build/Compile
54 $(MAKE_VARS) \
55 $(MAKE_FLAGS) \
56 npm_config_arch=$(NODEJS_CPU) \
57 npm_config_target_arch=$(NODEJS_CPU) \
58 npm_config_build_from_source=true \
59 npm_config_nodedir=$(STAGING_DIR)/usr/ \
60 npm_config_prefix=$(PKG_INSTALL_DIR)/usr/ \
61 npm_config_cache=$(TMP_DIR)/npm-cache-$(TMPNPM) \
62 npm_config_tmp=$(TMP_DIR)/npm-tmp-$(TMPNPM) \
63 npm install -g $(PKG_BUILD_DIR)
64 rm -rf $(TMP_DIR)/npm-tmp-$(TMPNPM)
65 rm -rf $(TMP_DIR)/npm-cache-$(TMPNPM)
66endef
67
68define Package/node-javascript-obfuscator/install
69 $(INSTALL_DIR) $(1)/usr/lib/node/$(PKG_NPM_NAME)
70 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{package.json,LICENSE.BSD} \
71 $(1)/usr/lib/node/$(PKG_NPM_NAME)/
72 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/README.md \
73 $(1)/usr/lib/node/$(PKG_NPM_NAME)/
74 $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,bin,dist} \
75 $(1)/usr/lib/node/$(PKG_NPM_NAME)/
76 $(INSTALL_DIR) $(1)/usr/bin
77 $(LN) ../lib/node/javascript-obfuscator/bin/javascript-obfuscator $(1)/usr/bin/javascript-obfuscator
78endef
79
80define Host/Compile
81 $(HOST_MAKE_VARS) \
82 npm_config_nodedir=$(STAGING_DIR)/usr/ \
83 npm_config_prefix=$(HOST_INSTALL_DIR)/usr/ \
84 npm_config_cache=$(TMP_DIR)/npm-cache-$(HOSTTMPNPM) \
85 npm_config_tmp=$(TMP_DIR)/npm-tmp-$(HOSTTMPNPM) \
86 npm install -g --no-optional $(HOST_BUILD_DIR)
87 rm -rf $(TMP_DIR)/npm-tmp-$(HOSTTMPNPM)
88 rm -rf $(TMP_DIR)/npm-cache-$(HOSTTMPNPM)
89endef
90
91define Host/Install
92 $(INSTALL_DIR) $(1)/lib/node_modules/$(PKG_NPM_NAME)
93 $(CP) $(HOST_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{package.json,LICENSE.BSD} \
94 $(1)/lib/node_modules/$(PKG_NPM_NAME)/
95 $(CP) $(HOST_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/README.md \
96 $(1)/lib/node_modules/$(PKG_NPM_NAME)/
97 $(CP) $(HOST_INSTALL_DIR)/usr/lib/node_modules/$(PKG_NPM_NAME)/{node_modules,bin,dist} \
98 $(1)/lib/node_modules/$(PKG_NPM_NAME)/
99 $(INSTALL_DIR) $(1)/bin
100 $(LN) ../lib/node_modules/javascript-obfuscator/bin/javascript-obfuscator $(1)/bin/javascript-obfuscator
101endef
102
103$(eval $(call HostBuild))
104$(eval $(call BuildPackage,node-javascript-obfuscator))