78d7c5f803
To use nodejs on the host (independant of the actual system) to create some static files to place onto the target rootfs nodejs can be very helpful. The provided nodejs package didn't expose the possibility to create a host package, which this commit adds. This patch contains fixes based on feedback from: - Peter Seiderer <ps.report@gmx.net> - Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Linus Kaschulla <linus@cosmos-ink.net> Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
84 lines
2.8 KiB
Plaintext
84 lines
2.8 KiB
Plaintext
config BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
|
|
bool
|
|
# On ARM, at least ARMv6+ with VFPv2+ is needed
|
|
default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_VFPV2
|
|
default y if BR2_mipsel && !BR2_MIPS_SOFT_FLOAT
|
|
default y if BR2_aarch64 || BR2_i386 || BR2_x86_64
|
|
# libuv
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
|
depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
|
|
|
|
comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 7, wchar, host gcc >= 8"
|
|
depends on BR2_USE_MMU
|
|
depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
|
|
depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
|
|
!BR2_HOST_GCC_AT_LEAST_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_USE_WCHAR
|
|
|
|
config BR2_PACKAGE_NODEJS
|
|
bool "nodejs"
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
|
|
depends on BR2_INSTALL_LIBSTDCPP
|
|
depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
|
|
depends on BR2_HOST_GCC_AT_LEAST_8 # qemu
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7
|
|
depends on BR2_USE_WCHAR
|
|
# uses fork()
|
|
depends on BR2_USE_MMU
|
|
# uses dlopen(). On ARMv5, we could technically support static
|
|
# linking, but that's too much of a corner case to support it.
|
|
depends on !BR2_STATIC_LIBS
|
|
select BR2_PACKAGE_HOST_NODEJS
|
|
select BR2_PACKAGE_C_ARES
|
|
select BR2_PACKAGE_LIBUV
|
|
select BR2_PACKAGE_ZLIB
|
|
select BR2_PACKAGE_NGHTTP2
|
|
help
|
|
Event-driven I/O server-side JavaScript environment based on
|
|
V8.
|
|
|
|
http://nodejs.org/
|
|
|
|
if BR2_PACKAGE_NODEJS
|
|
|
|
config BR2_PACKAGE_NODEJS_NPM
|
|
bool "NPM for the target"
|
|
select BR2_PACKAGE_OPENSSL
|
|
help
|
|
NPM is the package manager for the Node JavaScript platform.
|
|
Note that enabling NPM on the target also selects OpenSSL
|
|
for the target.
|
|
|
|
http://www.npmjs.org
|
|
|
|
Note that NPM is always built for the buildroot host.
|
|
|
|
config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL
|
|
string "Additional modules"
|
|
help
|
|
List of space-separated nodejs modules to install via npm.
|
|
See https://npmjs.org/ to find modules and 'npm help install'
|
|
for available installation methods. For repeatable builds,
|
|
download and save tgz files or clone git repos for the
|
|
components you care about.
|
|
|
|
Example:
|
|
serialport uglify-js@1.3.4 /my/module/mymodule.tgz \
|
|
git://github.com/someuser/somemodule.git#v1.2
|
|
|
|
This would install the serialport module (at the newest
|
|
version), the uglify-js module at 1.3.4, a module from a
|
|
filesystem path, and a module from a git repository.
|
|
|
|
config BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS
|
|
string "Additional module dependencies"
|
|
help
|
|
List of space-separated buildroot recipes which must be
|
|
built before your npms can be installed. For example, if in
|
|
'Additional modules' you specified 'node-curl' (see:
|
|
https://github.com/jiangmiao/node-curl), you could then
|
|
specify 'libcurl' here, to ensure that buildroot builds the
|
|
libcurl package, and does so before building your node
|
|
modules.
|
|
|
|
endif
|