Version 7 (modified by sam, 6 years ago) (diff)


Set up a cross-build machine for the Raspberry Pi


This document focuses on Debian hosts. Debian derivatives such as Ubuntu should work with minor changes.


Get the Raspberry firmware and tools:

git clone
git clone

Environment variables

  • Set RASPI_SDK_ROOT to the directory containing firmware and tools.
  • Add the following directory to PATH:

Building autoconf projects

For simple autoconf projects (using ./configure ; make) the following command can now be used:


./configure --host=arm-bcm2708hardfp-linux-gnueabi \
    CPPFLAGS="-I$RASPI_INCLUDES -I$RASPI_INCLUDES/interface/vcos/pthreads" \


Using Debian / Raspbian libraries

Choose a directory to store Raspbian packages, for instance $RASPI_SDK_ROOT/chroot. You can then use debootstrap to install packages to it, but if you have a multiarch-enabled system you can use this poor man's shell script:

raspi-install () {
    for pkg in "$@"
        apt-get download "$pkg":armhf \
         && dpkg-deb -x "$pkg"_*.deb $RASPI_SDK_ROOT/chroot \
         && rm -f "$pkg"_*_armhf.deb

Then for eg. SDL:

raspi-install libsdl1.2debian libsdl1.2-dev

Then add the following to CPPFLAGS in the configure line:


And the following to LDFLAGS:

-Wl,-rpath-link -Wl,$RASPI_SDK_ROOT/chroot/lib/arm-linux-gnueabihf
-Wl,-rpath-link -Wl,$RASPI_SDK_ROOT/chroot/usr/lib/arm-linux-gnueabihf

Bitten configuration

For Lol Engine autobuilders, add the following section to the bitten machine file:

version = 0