-
Notifications
You must be signed in to change notification settings - Fork 80
Build
These instructions should work on Mac and Linux. Windows/cygwin is not investigated yet. If you get this to work, please send the details and it will be added to the wiki.
Get the latest Android SDK and NDK. You need to install support for the android-9 platform.
Install a recent version of Python 2.x.
Install Git.
Create a directory, we'll refer to as <work dir>
that will contain all of the repositories you need, and cd into this directory.
anode depends on the openssl libraries libssl.so
and libcrypto.so
. These libraries are present on the phone and also on the emulator, but aren't officially part of the ndk. We prefer to use the platform-provided versions of these libraries (instead of building a copy into anode) and so you have to install a copy of each of these libraries into the ndk.
There are two ways to do this.
Starting in <work dir>
, clone the repo:
git clone git://github.com/paddybyers/openssl-android.git
To build it:
cd openssl-android
ndk-build
The resulting libraries need to be copied or linked to the ndk library directory, eg (for Android 2.3, platform-9):
ln -s libs/armeabi/libssl.so <ndk dir>/platforms/android-9/arch-arm/usr/lib/
ln -s libs/armeabi/libcrypto.so <ndk dir>/platforms/android-9/arch-arm/usr/lib/
If you are building for a later platform version (eg android-14), then put the libraries into the corresponding lib directory.
Prebuilt binary versions of the libraries are here:
https://github.com/downloads/paddybyers/openssl-android/libssl.so
https://github.com/downloads/paddybyers/openssl-android/libcrypto.so
These need to be placed in the ndk library directory.
Create a directory that will contain all of the repositories you need. Starting in <work dir>
, clone each of the repositories in turn.
git clone git://github.com/paddybyers/anode.git
git clone git://github.com/paddybyers/pty.git
git clone git://github.com/paddybyers/node.git
This last repository has a number of development branches with the Android port, but use the default, v0.6-android
which is derived from node.js v0.6.
There is also a master-isolate-android
branch which is derived from master. To use this, you will need to cd into the node
directory and git checkout master-isolate-android
. This will be used to track 0.7/0.8 developments but should be expected to be unstable.
NODE_PATH
must point to the root of the node repo just created. NDK_MODULE_PATH
must point to the immediate parent directory of each native android module.
export NODE_PATH=<work dir>/node
export NDK_MODULE_PATH=<work dir>:<work dir>/anode:<work dir>/node
cd anode/libnode
ndk-build
Once the native library is built, this needs to be included as an asset in the top-level Android project:
ln -s libs/armeabi/libjninode.so ../app/assets/libjninode.so
Or if you prefer (or on Windows), edit the top-level makefile to add an install target to perform the copy.
Open Eclipse and do:
File->Import->General->Existing projects into workspace
Point to the <work dir>/anode directory
and import both the app
and libnode
projects.
You are now ready to build and run.