build-scripts/raspberrypi-buildbot.sh
author Ryan C. Gordon <icculus@icculus.org>
Fri, 28 Mar 2014 09:59:32 -0400
changeset 8685 dc6bb5950415
parent 8587 d913fb15b69a
child 8722 9203a56e7ffc
permissions -rwxr-xr-x
Raspberry Pi builds should upload as .tar.xz instead of .tar.bz2.

Makes the archive about 40-50% smaller!
icculus@7797
     1
#!/bin/bash
icculus@7797
     2
icculus@7797
     3
# This is the script buildbot.libsdl.org uses to cross-compile SDL2 from
icculus@7797
     4
#  x86 Linux to Raspberry Pi.
icculus@7797
     5
icculus@7797
     6
# The final tarball can be unpacked in the root directory of a RPi,
icculus@7797
     7
#  so the SDL2 install lands in /usr/local. Run ldconfig, and then
icculus@7797
     8
#  you should be able to build and run SDL2-based software on your
icculus@7797
     9
#  Pi. Standard configure scripts should be able to find SDL and
icculus@7797
    10
#  build against it, and sdl2-config should work correctly on the
icculus@7797
    11
#  actual device.
icculus@7797
    12
icculus@7800
    13
TARBALL="$1"
icculus@7800
    14
if [ -z $1 ]; then
icculus@8685
    15
    TARBALL=sdl-raspberrypi.tar.xz
icculus@7800
    16
fi
icculus@7797
    17
icculus@7797
    18
OSTYPE=`uname -s`
icculus@7797
    19
if [ "$OSTYPE" != "Linux" ]; then
icculus@7797
    20
    # !!! FIXME
icculus@7797
    21
    echo "This only works on x86 or x64-64 Linux at the moment." 1>&2
icculus@7797
    22
    exit 1
icculus@7797
    23
fi
icculus@7797
    24
icculus@7797
    25
if [ "x$MAKE" == "x" ]; then
icculus@7797
    26
    NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
icculus@7797
    27
    let NCPU=$NCPU+1
icculus@7797
    28
    MAKE="make -j$NCPU"
icculus@7797
    29
fi
icculus@7797
    30
icculus@7797
    31
BUILDBOTDIR="raspberrypi-buildbot"
icculus@7797
    32
PARENTDIR="$PWD"
icculus@7797
    33
icculus@7797
    34
set -e
icculus@7797
    35
set -x
icculus@7797
    36
rm -f $TARBALL
icculus@7797
    37
rm -rf $BUILDBOTDIR
icculus@7797
    38
mkdir -p $BUILDBOTDIR
icculus@7797
    39
pushd $BUILDBOTDIR
icculus@7797
    40
icculus@7805
    41
SYSROOT="/opt/rpi-sysroot"
icculus@8063
    42
export CC="ccache /opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux -L$SYSROOT/opt/vc/lib"
icculus@7805
    43
# -L$SYSROOT/usr/lib/arm-linux-gnueabihf"
icculus@7797
    44
# !!! FIXME: shouldn't have to --disable-* things here.
icculus@8587
    45
../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd --disable-video-mir
icculus@7797
    46
$MAKE
icculus@7797
    47
$MAKE install
icculus@7797
    48
# Fix up a few things to a real install path on a real Raspberry Pi...
icculus@7797
    49
perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
icculus@7797
    50
mkdir -p ./usr
icculus@7797
    51
mv ./rpi-sdl2-installed ./usr/local
icculus@7797
    52
icculus@7797
    53
popd
icculus@8685
    54
tar -cJvvf $TARBALL -C $BUILDBOTDIR usr
icculus@7797
    55
rm -rf $BUILDBOTDIR
icculus@7797
    56
icculus@7797
    57
set +x
icculus@7797
    58
echo "All done. Final installable is in $TARBALL ...";
icculus@7797
    59
icculus@7797
    60