build-scripts/nacl-buildbot.sh
author Ryan C. Gordon <icculus@icculus.org>
Sun, 21 Oct 2018 22:40:17 -0400
changeset 12345 50e1cca28b39
parent 10593 9cfaba7f1d66
permissions -rwxr-xr-x
wasapi/win32: Sort initial device lists by device GUID.

This makes an unchanged set of hardware always report devices in the same
order on each run.
icculus@8881
     1
#!/bin/bash
icculus@8881
     2
icculus@8881
     3
# This is the script buildbot.libsdl.org uses to cross-compile SDL2 from
icculus@8881
     4
#  amd64 Linux to NaCl.
icculus@8881
     5
icculus@10593
     6
# PLEASE NOTE that we have reports that SDL built with pepper_49 (current
icculus@10593
     7
#  stable release as of November 10th, 2016) is broken. Please retest
icculus@10593
     8
#  when something newer becomes stable and then decide if this was SDL's
icculus@10593
     9
#  bug or NaCl's bug.  --ryan.
icculus@10593
    10
export NACL_SDK_ROOT="/nacl_sdk/pepper_47"
icculus@8881
    11
icculus@8881
    12
TARBALL="$1"
icculus@8881
    13
if [ -z $1 ]; then
icculus@8881
    14
    TARBALL=sdl-nacl.tar.xz
icculus@8881
    15
fi
icculus@8881
    16
icculus@8881
    17
OSTYPE=`uname -s`
icculus@8881
    18
if [ "$OSTYPE" != "Linux" ]; then
icculus@8881
    19
    # !!! FIXME
icculus@8881
    20
    echo "This only works on x86 or x64-64 Linux at the moment." 1>&2
icculus@8881
    21
    exit 1
icculus@8881
    22
fi
icculus@8881
    23
icculus@8881
    24
if [ "x$MAKE" == "x" ]; then
icculus@8881
    25
    NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
icculus@8881
    26
    let NCPU=$NCPU+1
icculus@8881
    27
    MAKE="make -j$NCPU"
icculus@8881
    28
fi
icculus@8881
    29
icculus@8881
    30
BUILDBOTDIR="nacl-buildbot"
icculus@8881
    31
PARENTDIR="$PWD"
icculus@8881
    32
icculus@8881
    33
set -e
icculus@8881
    34
set -x
icculus@8881
    35
rm -f $TARBALL
icculus@8881
    36
rm -rf $BUILDBOTDIR
icculus@8881
    37
mkdir -p $BUILDBOTDIR
icculus@8881
    38
pushd $BUILDBOTDIR
icculus@8881
    39
icculus@8881
    40
# !!! FIXME: ccache?
icculus@8881
    41
export CC="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-clang"
icculus@8881
    42
export CFLAGS="$CFLAGS -I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl"
icculus@8881
    43
export AR="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
icculus@8881
    44
export LD="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar"
icculus@8881
    45
export RANLIB="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ranlib"
icculus@8881
    46
icculus@8881
    47
../configure --host=pnacl --prefix=$PWD/nacl-sdl2-installed
icculus@8881
    48
$MAKE
icculus@8881
    49
$MAKE install
slouken@8882
    50
# Fix up a few things to a real install path
icculus@8881
    51
perl -w -pi -e "s#$PWD/nacl-sdl2-installed#/usr/local#g;" ./nacl-sdl2-installed/lib/libSDL2.la ./nacl-sdl2-installed/lib/pkgconfig/sdl2.pc ./nacl-sdl2-installed/bin/sdl2-config
icculus@8881
    52
mkdir -p ./usr
icculus@8881
    53
mv ./nacl-sdl2-installed ./usr/local
icculus@8881
    54
icculus@8881
    55
popd
icculus@8881
    56
tar -cJvvf $TARBALL -C $BUILDBOTDIR usr
icculus@8881
    57
rm -rf $BUILDBOTDIR
icculus@8881
    58
icculus@8881
    59
set +x
icculus@8881
    60
echo "All done. Final installable is in $TARBALL ...";
icculus@8881
    61