JavaScript runtime built on Chrome's V8 JavaScript engine
| runtime dependencies | brotli (Compressors and decompressors) |
|---|---|
| nghttp2 (Libraries/Networking) | |
| icu (Text and terminal handling) | |
| libuv (Libraries/Other) | |
| make dependencies | libicu-dev |
mkdir /data/buildroot/package/nodejs-git
cat > /data/buildroot/package/nodejs-git/Config.in<< 'EOF'
config BR2_PACKAGE_NODEJS_GIT
bool "nodejs-git"
depends on BR2_PACKAGE_NGHTTP2
depends on BR2_PACKAGE_LIBUV
depends on BR2_PACKAGE_OPENSSL
depends on BR2_PACKAGE_ZLIB
depends on BR2_PACKAGE_ICU
depends on BR2_PACKAGE_BROTLI
help
JavaScript runtime built on Chrome's V8 JavaScript engine
EOF
cat > /data/buildroot/package/nodejs-git/nodejs-git.mk<< 'EOF'
#############################################################
#
# nodejs-git
# https://github.com/nodejs/node/archive/refs/tags/v17.8.0.tar.gz
#
#############################################################
NODEJS_GIT_VERSION = 17.8.0
NODEJS_GIT_SOURCE = nodejs-$(NODEJS_GIT_VERSION).tar.gz
NODEJS_GIT_SITE = https://github.com/nodejs/node/archive/v$(NODEJS_GIT_VERSION)
NODEJS_GIT_DEPENDENCIES = nghttp2 libuv zlib openssl icu brotli
NODEJS_GIT_INSTALL_STAGING = YES
define NODEJS_GIT_BUILD_CMDS
cd $(@D)/ && \
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig/" ./configure \
--prefix=/usr \
--with-intl=system-icu \
--without-npm \
--shared-openssl \
--shared-zlib \
--shared-libuv \
--experimental-http-parser \
--shared-nghttp2 \
--shared-cares \
--shared-brotli
# --shared-v8
# --shared-http-parser
make
endef
define CONMON_INSTALL_STAGING_CMDS
cd $(@D)/ && \
make DESTDIR="${STAGING_DIR}" install
endef
define NODEJS_GIT_INSTALL_TARGET_CMDS
cd $(@D)/ && \
make DESTDIR="${TARGET_DIR}" install
install -d "${TARGET_DIR]/usr/share/doc/nodejs"
cp -r "$(@D)/doc/api" "${TARGET_DIR}/usr/share/doc/nodejs"
install -Dm644 "$(@D)/LICENSE" -t "${TARGET_DIR}/usr/share/licenses/nodejs"
endef
$(eval $(generic-package))
EOF
sed -i '/menu "Custom packages"/a source "package/nodejs-git/Config.in"' /data/buildroot/package/Config.in