From 71e285b94c7edaa43aa8115965cf5a36b8e0f80a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 Apr 2019 15:43:32 +0200 Subject: Node.js v11.13.0 --- deps/node/android-configure | 79 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 deps/node/android-configure (limited to 'deps/node/android-configure') diff --git a/deps/node/android-configure b/deps/node/android-configure new file mode 100755 index 00000000..59f0a40c --- /dev/null +++ b/deps/node/android-configure @@ -0,0 +1,79 @@ +#!/bin/bash + +# In order to cross-compile node for Android using NDK, run: +# source android-configure [arch] +# +# By running android-configure with source, will allow environment variables to +# be persistent in current session. This is useful for installing native node +# modules with npm. Also, don't forget to set the arch in npm config using +# 'npm config set arch=' + + +if [ -z "$2" ]; then + ARCH=arm +else + ARCH="$2" +fi + +CC_VER="4.9" +case $ARCH in + arm) + DEST_CPU="$ARCH" + SUFFIX="$ARCH-linux-androideabi" + TOOLCHAIN_NAME="$SUFFIX" + ;; + x86) + DEST_CPU="ia32" + SUFFIX="i686-linux-android" + TOOLCHAIN_NAME="$ARCH" + ;; + x86_64) + DEST_CPU="ia32" + SUFFIX="$ARCH-linux-android" + TOOLCHAIN_NAME="$ARCH" + ;; + *) + echo "Unsupported architecture provided: $ARCH" + exit 1 + ;; +esac + +NDK_PATH=$1 +function make_toolchain { + $NDK_PATH/build/tools/make-standalone-toolchain.sh \ + --toolchain=$TOOLCHAIN_NAME-$CC_VER \ + --arch=$ARCH \ + --install-dir=$TOOLCHAIN \ + --platform=android-21 +} + +export TOOLCHAIN=$PWD/android-toolchain +if [ -d "$TOOLCHAIN" ]; then + read -r -p "NDK toolchain already exists. Replace it? [y/N]" response + case "$response" in + [Yy]) + rm -rf "$TOOLCHAIN" + make_toolchain + esac +else + make_toolchain +fi +export PATH=$TOOLCHAIN/bin:$PATH +export AR=$TOOLCHAIN/bin/$SUFFIX-ar +export CC=$TOOLCHAIN/bin/$SUFFIX-gcc +export CXX=$TOOLCHAIN/bin/$SUFFIX-g++ +export LINK=$TOOLCHAIN/bin/$SUFFIX-g++ + +GYP_DEFINES="target_arch=$ARCH" +GYP_DEFINES+=" v8_target_arch=$ARCH" +GYP_DEFINES+=" android_target_arch=$ARCH" +GYP_DEFINES+=" host_os=linux OS=android" +export GYP_DEFINES + +if [ -f "configure" ]; then + ./configure \ + --dest-cpu=$DEST_CPU \ + --dest-os=android \ + --without-snapshot \ + --openssl-no-asm +fi -- cgit v1.2.3