Evented I/O for V8 javascript.

This is a guide how to compile node.js (v0.8.16-release) for arm architecture and create the node executable to be able to be linked dynamically.

Prerequisites (Unix only):

* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

Build using build script (Ubuntu only):

$ ./build -h
Usage: build [options]

Options:
  -h, --help           show this help message and exit
  --dest-cpu=DEST_CPU  CPU architecture to build for. Valid values are: arm,
                       x86
  --with-shared        Build with shared option. Node works as a shared library

  --with-pie           Build with pie option. The executable is able to be
                       linked dynamically
  --prefix=PREFIX      Select the install prefix (defaults to
                       ./node/out/Release)

$ mkdir output
$ ./build --dest-cpu=arm --with-pie --prefix=./output
$ file ./output/node
out/Release/node: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked 
(uses shared libs), for GNU/Linux 2.6.15, not stripped

Build own your own:

Get node Source code:

$ git clone git://github.com/joyent/node.git
$ cd node
$ git checkout v0.8.16-release

Set some envirnments for cross compile:

$ export AR=arm-linux-gnueabi-ar
$ export CC=arm-linux-gnueabi-gcc
$ export CXX=arm-linux-gnueabi-g++
$ export LINK=arm-linux-gnueabi-g++

Set patch for making node shared library

$ patch -p0 < ../patch-for-making-shared-library.patch

Build node

$ ./configure --without-snapshot --dest-cpu=arm --dest-os=linux
$ make --jobs=8

Resources for Newcomers