build-scripts/emscripten-buildbot.sh
author Sylvain Becker <sylvain.becker@gmail.com>
Wed, 30 Jan 2019 16:36:47 +0100
changeset 12584 233b2a61cad1
parent 10958 92d837180433
permissions -rwxr-xr-x
Fixed failing SDL_ConvertSurface() when blit has failed.

Some blit combination are not supported (eg ARGB8888 -> SDL_PIXELFORMAT_INDEX1MSB)
So prevent SDL_ConvertSurface from creating a broken surface, which cannot be blitted
     1 #!/bin/bash
     2 
     3 if [ -z "$SDKDIR" ]; then
     4     SDKDIR="/emsdk_portable"
     5 fi
     6 
     7 ENVSCRIPT="$SDKDIR/emsdk_env.sh"
     8 if [ ! -f "$ENVSCRIPT" ]; then
     9    echo "ERROR: This script expects the Emscripten SDK to be in '$SDKDIR'." 1>&2
    10    echo "ERROR: Set the \$SDKDIR environment variable to override this." 1>&2
    11    exit 1
    12 fi
    13 
    14 TARBALL="$1"
    15 if [ -z $1 ]; then
    16     TARBALL=sdl-emscripten.tar.xz
    17 fi
    18 
    19 cd `dirname "$0"`
    20 cd ..
    21 SDLBASE=`pwd`
    22 
    23 if [ -z "$MAKE" ]; then
    24     OSTYPE=`uname -s`
    25     if [ "$OSTYPE" == "Linux" ]; then
    26         NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
    27         let NCPU=$NCPU+1
    28     elif [ "$OSTYPE" = "Darwin" ]; then
    29         NCPU=`sysctl -n hw.ncpu`
    30     elif [ "$OSTYPE" = "SunOS" ]; then
    31         NCPU=`/usr/sbin/psrinfo |wc -l |sed -e 's/^ *//g;s/ *$//g'`
    32     else
    33         NCPU=1
    34     fi
    35 
    36     if [ -z "$NCPU" ]; then
    37         NCPU=1
    38     elif [ "$NCPU" = "0" ]; then
    39         NCPU=1
    40     fi
    41 
    42     MAKE="make -j$NCPU"
    43 fi
    44 
    45 echo "\$MAKE is '$MAKE'"
    46 
    47 echo "Setting up Emscripten SDK environment..."
    48 source "$ENVSCRIPT"
    49 
    50 echo "Setting up..."
    51 set -x
    52 cd "$SDLBASE"
    53 rm -rf buildbot
    54 mkdir buildbot
    55 pushd buildbot
    56 
    57 echo "Configuring..."
    58 emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2 -Wno-warn-absolute-paths -Wdeclaration-after-statement -Werror=declaration-after-statement" --prefix="$PWD/emscripten-sdl2-installed" || exit $?
    59 
    60 echo "Building..."
    61 emmake $MAKE || exit $?
    62 
    63 echo "Moving things around..."
    64 emmake $MAKE install || exit $?
    65 
    66 # Fix up a few things to a real install path
    67 perl -w -pi -e "s#$PWD/emscripten-sdl2-installed#/usr/local#g;" ./emscripten-sdl2-installed/lib/libSDL2.la ./emscripten-sdl2-installed/lib/pkgconfig/sdl2.pc ./emscripten-sdl2-installed/bin/sdl2-config
    68 mkdir -p ./usr
    69 mv ./emscripten-sdl2-installed ./usr/local
    70 popd
    71 tar -cJvvf $TARBALL -C buildbot usr
    72 rm -rf buildbot
    73 
    74 exit 0
    75 
    76 # end of emscripten-buildbot.sh ...
    77