summaryrefslogtreecommitdiff
path: root/deps/node/android-configure
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-04-03 15:43:32 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-04-03 15:45:57 +0200
commit71e285b94c7edaa43aa8115965cf5a36b8e0f80a (patch)
tree7d4aa9d0d5aff686b106cd5da72ba77960c4af43 /deps/node/android-configure
parent7dadf9356b4f3f4137ce982ea5bb960283116e9a (diff)
downloadakono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.gz
akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.bz2
akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.zip
Node.js v11.13.0
Diffstat (limited to 'deps/node/android-configure')
-rwxr-xr-xdeps/node/android-configure79
1 files changed, 79 insertions, 0 deletions
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 <path_to_ndk> [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=<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