From 7a31bd29372ae6b89f130011c877f24cb845bcbd Mon Sep 17 00:00:00 2001 From: sbwml Date: Wed, 25 Oct 2023 22:23:21 +0800 Subject: [PATCH] init Signed-off-by: sbwml --- Makefile | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 8 ++++++ 2 files changed, 83 insertions(+) create mode 100644 Makefile create mode 100644 README.md diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..118a9fa --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +# +# Copyright (C) 2006-2017 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:=node +PKG_VERSION:=$(shell curl -s https://downloads.openwrt.org/releases/packages-23.05/aarch64_generic/packages/ | grep node_v | grep -oP 'node_v\d+\.\d+\.\d+-\d+' | sed -n 's/node_//p' | head -n1) + +PKG_MAINTAINER:=Hirokazu MORIKAWA , Adrian Panella +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_CPE_ID:=cpe:/a:nodejs:node.js + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/package.mk + +define Package/node + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Node.js + TITLE:=Node.js is a platform built on Chrome's JavaScript runtime + URL:=https://nodejs.org/ + DEPENDS:=@HAS_FPU @(i386||x86_64||arm||aarch64||mipsel) \ + +libstdcpp +libopenssl +zlib +libnghttp2 +libuv \ + +libcares +libatomic +NODEJS_ICU_SYSTEM:icu +NODEJS_ICU_SYSTEM:icu-full-data +endef + +define Package/node/description + Node.jsĀ® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses + an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' + package ecosystem, npm, is the largest ecosystem of open source libraries in the world. + *** The following preparations must be made on the host side. *** + 1. gcc 8.3 or higher is required. + 2. To build a 32-bit target, gcc-multilib, g++-multilib are required. + 3. Requires libatomic package. (If necessary, install the 32-bit library at the same time.) + ex) sudo apt-get install gcc-multilib g++-multilib +endef + +define Package/node-npm + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Node.js + TITLE:=NPM stands for Node Package Manager + URL:=https://www.npmjs.com/ + DEPENDS:=+node +endef + +define Package/node-npm/description + NPM is the package manager for NodeJS +endef + +define Build/Compile + ( \ + pushd $(PKG_BUILD_DIR) ; \ + wget -O node.ipk https://downloads.openwrt.org/releases/packages-23.05/$(ARCH_PACKAGES)/packages/node_$(PKG_VERSION)_$(ARCH_PACKAGES).ipk ; \ + $(TAR) -zxvf node.ipk ; \ + $(TAR) -zxvf data.tar.gz ; \ + popd ; \ + ) +endef + +define Package/node/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/bin/node $(1)/usr/bin/ +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,node)) +$(eval $(call BuildPackage,node-npm)) diff --git a/README.md b/README.md new file mode 100644 index 0000000..75c2a3c --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# openwrt-23.05 - node + +### quickly build package that require node dependent + +```shell +rm -rf feeds/packages/lang/node +git clone https://github.com/sbwml/feeds_packages_lang_node-prebuilt feeds/packages/lang/node +```