X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/27ce01e83bf0264b9aed9595226ef84f07ca0f52..f09efec9f9ffdb1636e0cc009cfd0f79c3169a6b:/packages/nodejs/build.sh diff --git a/packages/nodejs/build.sh b/packages/nodejs/build.sh index 449d97e7..a1deaf74 100644 --- a/packages/nodejs/build.sh +++ b/packages/nodejs/build.sh @@ -1,28 +1,31 @@ TERMUX_PKG_HOMEPAGE=http://nodejs.org/ TERMUX_PKG_DESCRIPTION="Platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications" -TERMUX_PKG_VERSION=5.9.0 +TERMUX_PKG_VERSION=6.9.0 TERMUX_PKG_SRCURL=https://nodejs.org/dist/v${TERMUX_PKG_VERSION}/node-v${TERMUX_PKG_VERSION}.tar.gz -TERMUX_PKG_DEPENDS="openssl, libuv" +# Note that we do not use a shared libuv to avoid an issue with the Android +# linker, which does not use symbols of linked shared libraries when resolving +# symbols on dlopen(). See https://github.com/termux/termux-packages/issues/462. +TERMUX_PKG_DEPENDS="openssl, c-ares" TERMUX_PKG_RM_AFTER_INSTALL="lib/node_modules/npm/html lib/node_modules/npm/make.bat share/systemtap lib/dtrace" TERMUX_PKG_BUILD_IN_SRC=yes termux_step_configure () { - #XXX: node.js build does not handle already installed headers - # https://github.com/nodejs/node/issues/2637 - # So we remove them here and restore afterwards. - rm -Rf $TERMUX_PKG_CACHEDIR/gtest-include-dir $TERMUX_PKG_CACHEDIR/ares-includes - test -d $TERMUX_PREFIX/include/gtest && - mv $TERMUX_PREFIX/include/gtest $TERMUX_PKG_CACHEDIR/gtest-include-dir - test -f $TERMUX_PREFIX/include/ares.h && - mkdir $TERMUX_PKG_CACHEDIR/ares-includes/ && - mv $TERMUX_PREFIX/include/ares* $TERMUX_PKG_CACHEDIR/ares-includes/ - - # https://github.com/nodejs/build/issues/266: "V8 can handle cross compiling of - # snapshots if the {CC,CXX}_host variables are defined, by compiling the - # mksnapshot executable with the host compiler". But this currently fails - # due to the host build picking up targets flags. - export CC_host=gcc - export CXX_host=g++ + # See https://github.com/nodejs/build/issues/266 about enabling snapshots + # when cross compiling. We use {CC,CXX}_host for compilation of code to + # be run on the build maching (snapshots when cross compiling are + # generated using a CPU emulator provided by v8) and {CC,CXX} for the + # cross compile. We unset flags such as CFLAGS as they would affect + # both the host and cross compiled build. + # Remaining issue to be solved before enabling snapshots by removing + # the --without-snapshot flag is that pkg-config picks up cross compilation + # flags which breaks the host build. + #export CC_host="gcc -pthread" + #export CXX_host="g++ -pthread" + #export CC="$CC $CFLAGS $CPPFLAGS $LDFLAGS" + #export CXX="$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS" + #export CFLAGS="-Os" + #export CXXFLAGS="-Os" + #unset CPPFLAGS LDFLAGS if [ $TERMUX_ARCH = "arm" ]; then DEST_CPU="arm" @@ -37,21 +40,15 @@ termux_step_configure () { exit 1 fi - #LDFLAGS+=" -lstlport_static" - + # See note above TERMUX_PKG_DEPENDS why we do not use a shared libuv. ./configure \ --prefix=$TERMUX_PREFIX \ --dest-cpu=$DEST_CPU \ --dest-os=android \ - --shared-openssl --shared-zlib --shared-libuv \ + --shared-cares \ + --shared-openssl \ + --shared-zlib \ + --without-inspector \ + --without-intl \ --without-snapshot } - -termux_step_post_massage () { - test -d $TERMUX_PKG_CACHEDIR/gtest-include-dir && - mv $TERMUX_PKG_CACHEDIR/gtest-include-dir $TERMUX_PREFIX/include/gtest - test -d $TERMUX_PKG_CACHEDIR/ares-includes && - mv $TERMUX_PKG_CACHEDIR/ares-includes/* $TERMUX_PREFIX/include/ - # Exit with success to avoid aborting script due to set -e: - true -}