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.
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD 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
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
- [n8.io] (http://n8.io/cross-compiling-nodejs-v0.8/)
- The Wiki
- nodejs.org
- how to install node.js and npm (node package manager)
- list of modules
- searching the npm registry
- list of companies and projects using node
- node.js mailing list
- irc chatroom, #node.js on freenode.net
- community
- contributing
- big list of all the helpful wiki pages