This is a very old gist - it may not work nor be correct anymore. Use everything at your own risk. See http://n8.io/cross-compiling-nodejs-v0.8/ for something slightly more up-to-date.
OpenSSL has been problematic in the past, use --without-ssl
first to determine if it's a problem with node or OpenSSL.
v0.8.15 (joyent/[email protected])
v0.8.15 (joyent/[email protected])
v0.8.14 (joyent/[email protected])
- Download pre-compiled cross-compilers from raspberrypi/tools, ensure to get the correct one for your system (e.g. use the hardfp version for Raspbian)
- Install the compilers in your PATH by editing your
.profile
file, ensuring to add the /tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/bin directory. - Download this cross-compile helper script
- Download the version of node.js source code you want or clone the git repository.
- If you are compiling Node.js 0.8.10 or lower, apply this newer set of patches or this patch, but not both.
- Run the cross-compiler helper script to get a shell with the correct variables. If compiling for a soft float system or anything besides the default, use the HOST envrionmental variable to set the correct HOST prefix, e.g. :
HOST=arm-bcm2708-linux-gnueabi ~/crosscompile.sh
otherwise to use the default (which is arm-bcm2708hardfp-linux-gnueabi
):
~/crosscompile.sh
- It seems that the arm ld doesn't work with the makefile arguments, so set the following export:
export LD="$CXX"
- If you are compiling Node.js 0.8.4 or lower, set the following exports:
export GYP_DEFINES="armv7=0"
export CCFLAGS='-march=armv6'
export CXXFLAGS='-march=armv6'
- Run configure:
./configure --without-snapshot
- Run make
make
Using --jobs=8
to parallelize the build may speed things up if you have a multi-core processor.
- Copy the node executable to the Raspberry Pi using scp
scp node raspbian:~/bin/node
Be warned: this will take forever.
- Download the version of node.js source code you want or clone the git repository.
- If you are compiling Node.js 0.8.10 or lower, apply this newer set of patches or this patch, but not both.
- Run configure:
./configure --without-snapshot
- Run make and make install
make
make install