# Template file for 'nodejs'
pkgname=nodejs
version=11.9.0
revision=1
wrksrc="node-v${version}"
# Need these for host v8 for torque, see https://github.com/nodejs/node/pull/21079
hostmakedepends="pkg-config python zlib-devel $(vopt_if icu icu-devel)
 $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel)
 $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel)
 $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)"
makedepends="zlib-devel python-devel $(vopt_if icu icu-devel)
 $(vopt_if ssl libressl-devel) $(vopt_if libuv libuv-devel)
 $(vopt_if http_parser http-parser-devel) $(vopt_if nghttp2 nghttp2-devel)
 $(vopt_if cares c-ares-devel) $(vopt_if http_parser llhttp-devel)"
short_desc="Evented I/O for V8 javascript"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="MIT"
homepage="https://nodejs.org/"
distfiles="${homepage}/dist/v${version}/node-v${version}.tar.gz"
checksum=d7f3d73d443f52c1c689fe88b9e55c35401b2207d251dc47b2d6a86a6d95758b

build_options="ssl libuv http_parser icu nghttp2 cares"
desc_option_ssl="Enable shared libressl"
desc_option_libuv="Enable shared libuv"
desc_option_http_parser="Enable shared http-parser and llhttp"
desc_option_icu="Enable shared icu"
desc_option_nghttp2="Enable shared nghttp2"
desc_option_cares="Enable shared c-ares"
build_options_default="libuv http_parser icu nghttp2 cares"

replaces="iojs>=0"
conflicts="nodejs-lts"
provides="nodejs-runtime-0_1"

case "$XBPS_TARGET_MACHINE" in
	arm*)
		case "$XBPS_MACHINE" in
			x86_64*|aarch64*)
				nocross="Can't cross-compile to 32bit-host from 64bit-host";;
		esac ;;
esac

do_configure() {
	local _args

	export LD="$CXX"
	if [ "$CROSS_BUILD" ]; then
		case "$XBPS_TARGET_MACHINE" in
			aarch64*) _args="--dest-cpu=arm64 --without-snapshot" ;;
			ppc64*) _args="--dest-cpu=ppc64 --without-snapshot" ;;
			*) msg_error "$pkgver: cannot be cross compiled for ${XBPS_TARGET_MACHINE}.\n" ;;
		esac
	fi
	./configure --prefix=/usr --shared-zlib \
		$(vopt_if icu --with-intl=system-icu) \
		$(vopt_if http_parser --shared-http-parser) \
		$(vopt_if ssl --shared-openssl) \
		$(vopt_if libuv --shared-libuv) \
		$(vopt_if nghttp2 --shared-nghttp2) \
		$(vopt_if cares --shared-cares) ${_args}
}

post_configure() {
	# Fix linking against llhttp
	sed 's/http_parser/& -lllhttp/' \
		-i out/cctest.target.mk \
		-i out/node.target.mk
}

do_build() {
	if [ "$CROSS_BUILD" ]; then
		make LD="$CXX" LDFLAGS+=-ldl ${makejobs} PORTABLE=1 V=1
	else
		make LD="$CXX" LDFLAGS+=-ldl ${makejobs} V=1
	fi
}
do_install() {
	make LD="$CXX" LDFLAGS+=-ldl DESTDIR="$DESTDIR" install
	vlicense LICENSE
	rm -r $DESTDIR/usr/include
}
