diff options
Diffstat (limited to 'deps/build_node')
-rwxr-xr-x | deps/build_node | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/deps/build_node b/deps/build_node new file mode 100755 index 00000000..40363be6 --- /dev/null +++ b/deps/build_node @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -euf -o pipefail + +NDK=$1 + +DEST_CPU_ARCH='arm' +API_LEVEL=26 +BUILD_HOST_TAG='linux-x86_64' +TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/ + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +if [[ ! -d "$TOOLCHAIN_DIR" ]]; then + echo "Toolchain directory '$TOOLCHAIN_DIR' invalid" + exit 1 +fi + +# The naming of these isn't very consistent, as some tools start with arm, +# others with arm7a. +export AR=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ar +export CC=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang +export CXX=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++ +export LD=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ld +export LINK=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++ +export RANLIB=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ranlib +export STRIP=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-strip + +export LDFLAGS="-static-libstdc++" + +cd node + +export GYP_DEFINES="OS=android clang=1" + +function myconf() { + ./configure \ + --dest-cpu=$DEST_CPU_ARCH \ + --dest-os=android \ + --without-snapshot \ + --without-intl \ + --openssl-no-asm \ + --without-bundled-v8 \ + --shared +} + +if [ -z ${2+x} ]; then + myconf && make +else + eval $2 +fi |