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

comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 4.9, wchar"
	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_4_9 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !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_4_9
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
	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_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
