Iti is an awesome little machine and excellent value! Where else can you get a machine like this with a relatively complere debian installation?

I can confirm the Cmke experiene, Luis. Wih respect to Boost, it takes about 4h to build boost 1.52 on it. I also set up cross compilation toolchain on a Linux machine. Then use rsync on the host machine (Ubuntu) to sync when you update the RasperryPi.

I used Crosstools-NG to build the cross compiler which was fairly straitforward, make sure you set hardware FP support.. This means you can use the latest version of gcc.
It was really easy to set up the CMake Toolcahin file, I just used the example one with a few simple mods. The really nice thing about CMake is you have two side-by side build directories, one for cross-compilation builds and one for native builds.

Download crosstool-ng from the project web site. I’ve used version 1.15.2 as that was the latest when I wrote this.
Unpack the tarball and cd into the unpacked directory, then run ./configure –prefix=/usr/local/cross. You can pick somewhere else instead of /usr/local/cross but that’s where I like to keep it.
Run make and sudo make install.
Make sure /usr/local/cross/bin is in your $PATH. e.g: export PATH=$PATH:/usr/local/cross/bin

Create a directory somewhere in your home directory that crosstool-ng will use as a staging ground. This will contain your toolchain configuration, downloaded files, and intermediary build results. This is not where your final toolchain will end up, and does take up quite a lot of space (3.5GB and up for me). cd into your chosen directory.
Run ct-ng menuconfig. You should see the ct-ng configuration menu.
Go into Paths and misc options. Enable Try features marked as EXPERIMENTAL. This is important.
While you’re there you may want to change your Prefix directory. I like to put all my toolchains in /usr/local/cross/x-tools/${CT_TARGET} instead of ${HOME}/x-tools/${CT_TARGET}.
Go back to the main menu and select Target options.
Change the Target architecture to arm. Leave Endianness set to Little endian and Bitness set to 32-bit.
Go back to the main menu and select Operating system (skip Toolchain options, the defaults are fine).
Change Target OS to linux.
Go back to the main menu and select Binary utilities.
Change binutils version to 2.21.1a or whichever is the latest that isn’t marked as experimental. Probably unnecessary but I prefer this.
Go back to the main menu and select C compiler.
Enable the Show Linaro versions (EXPERIMENTAL) option.
In the gcc version field, choose the linaro-4.6-2012.07 (EXPERIMENTAL) compiler. You’re free to choose a different one but I know this one works well. I do recommend the Linaro versions over the vanilla ones for the RPi.
All the other settings are fine left at their default values. Exit the configuration tool and save your changes.
Do this:
sudo bash
export PATH=$PATH:/usr/local/cross/bin
unset LD_LIBRARY_PATH
ct-ng build

Go away and make a coffee, etc… This bit will take some time.
You should end up with a freshly baked arm compiler ready for building kernels (and other things) for your Raspberry Pi in your Prefix directory you chose above.
Just add your compiler directory to your $PATH and start compiling. If you used my preferred prefix directory, you would want to add /opt/cross/x-tools/arm-unknown-linux-gnueabi/bin.
export PATH=$PATH:/usr/local/cross/x-tools/arm-unknown-linux-gnueabi/bin
Verify the compilers exist:
arm-unknown-linux-gnueabi-gcc –version
arm-unknown-linux-gnueabi-g++ –version

Now build a test program (C++) and call it HelloWorldRPi.cpp
arm-unknown-linux-gnueabi-g++ -o HelloWorldRPi HelloWorldRPi.cpp
Copy it across to tthe raspberrypi and run it.

Setting up files for cross compiling.
On the RaspberryPi install rsync
Create a folder on the cross compiling machine called say: ~/RaspberryPi
cd to this folder and do the following:
rsync -rl pi@raspberrypi.bigpond:/lib .
rsync -rl pi@raspberrypi.bigpond:/usr .

You can then use CMake to set up a cross compiling toolchain with a file like this:

#——————————————————————————
# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

CMake and Eclipse
You can set up the cross compiling tool chain to work with Eclipse CDT in just the same way as the makefile method, however select “Eclipse CDT4 – Unix Makefiles” instead of “Unix Makefiles” and then import the project into Eclipse.
————————————–