From a4b80000293c6874e68ba11ca5ba8e4969170a86 Mon Sep 17 00:00:00 2001 From: Robert Chiras Date: Fri, 22 Apr 2016 18:35:23 +0300 Subject: build: update android-configure script for npm Now, that we can cross-compile node for Android, we also need to take care of native node modules installed with npm. Since there is no way to install and run npm on an Android device, we could instal node on host and setup an environment for installing node modules and cross-compile the native sources using Android NDK. The changes to this script will allow npm, when installing a module, to compile it using NDK. In order to do this, the developer should do the following steps: 1. Compile and install node on host, using: configure, make and make install 2. Build node for Android, using: source android-configure arch and make 3. Push node binary to Android device 4. Using the same session, configure npm arch using: npm config set arch= 5. Install desired node modules using: npm install 6. Push installed node modules to Android device Signed-off-by: Robert Chiras PR-URL: https://github.com/nodejs/node/pull/6349 Reviewed-By: Ben Noordhuis --- android-configure | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'android-configure') diff --git a/android-configure b/android-configure index cbf137f471..1dc238ebd0 100755 --- a/android-configure +++ b/android-configure @@ -1,5 +1,14 @@ #!/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 @@ -42,8 +51,16 @@ export CC=$TOOLCHAIN/bin/$SUFFIX-gcc export CXX=$TOOLCHAIN/bin/$SUFFIX-g++ export LINK=$TOOLCHAIN/bin/$SUFFIX-g++ -./configure \ - --dest-cpu=$DEST_CPU \ - --dest-os=android \ - --without-snapshot \ - --openssl-no-asm +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