| #!/bin/bash |
| if [ -z "$1" ] && [ -z "$NACL_SDK_ROOT" ]; then |
| echo "Usage: ./naclbuild ~/nacl/pepper_35" |
| echo "This will build SDL for Native Client, and testgles2.c as a demo" |
| echo "You can set env vars CC, AR, LD and RANLIB to override the default PNaCl toolchain used" |
| echo "You can set env var SOURCES to select a different source file than testgles2.c" |
| exit 1 |
| fi |
| |
| if [ -n "$1" ]; then |
| NACL_SDK_ROOT="$1" |
| fi |
| |
| CC="" |
| |
| if [ -n "$2" ]; then |
| CC="$2" |
| fi |
| |
| echo "Using SDK at $NACL_SDK_ROOT" |
| |
| export NACL_SDK_ROOT="$NACL_SDK_ROOT" |
| export CFLAGS="$CFLAGS -I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl" |
| |
| NCPUS="1" |
| case "$OSTYPE" in |
| darwin*) |
| NCPU=`sysctl -n hw.ncpu` |
| ;; |
| linux*) |
| if [ -n `which nproc` ]; then |
| NCPUS=`nproc` |
| fi |
| ;; |
| *);; |
| esac |
| |
| CURDIR=`pwd -P` |
| SDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )" |
| BUILDPATH="$SDLPATH/build/nacl" |
| TESTBUILDPATH="$BUILDPATH/test" |
| SDL2_STATIC="$BUILDPATH/build/.libs/libSDL2.a" |
| mkdir -p $BUILDPATH |
| mkdir -p $TESTBUILDPATH |
| |
| if [ -z "$CC" ]; then |
| export CC="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-clang" |
| fi |
| if [ -z "$AR" ]; then |
| export AR="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar" |
| fi |
| if [ -z "$LD" ]; then |
| export LD="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar" |
| fi |
| if [ -z "$RANLIB" ]; then |
| export RANLIB="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ranlib" |
| fi |
| |
| if [ -z "$SOURCES" ]; then |
| export SOURCES="$SDLPATH/test/testgles2.c" |
| fi |
| |
| if [ ! -f "$CC" ]; then |
| echo "Could not find compiler at $CC" |
| exit 1 |
| fi |
| |
| |
| |
| |
| cd $BUILDPATH |
| $SDLPATH/configure --host=pnacl --prefix $TESTBUILDPATH |
| make -j$NCPUS CFLAGS="$CFLAGS -I./include" |
| make install |
| |
| if [ ! -f "$SDL2_STATIC" ]; then |
| echo "Build failed! $SDL2_STATIC" |
| exit 1 |
| fi |
| |
| echo "Building test" |
| cp -f $SDLPATH/test/nacl/* $TESTBUILDPATH |
| # Some tests need these resource files |
| cp -f $SDLPATH/test/*.bmp $TESTBUILDPATH |
| cp -f $SDLPATH/test/*.wav $TESTBUILDPATH |
| cp -f $SDL2_STATIC $TESTBUILDPATH |
| |
| # Copy user sources |
| _SOURCES=($SOURCES) |
| for src in "${_SOURCES[@]}" |
| do |
| cp $src $TESTBUILDPATH |
| done |
| export SOURCES="$SOURCES" |
| |
| cd $TESTBUILDPATH |
| make -j$NCPUS CONFIG="Release" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include" |
| make -j$NCPUS CONFIG="Debug" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include" |
| |
| echo |
| echo "Run the test with: " |
| echo "cd $TESTBUILDPATH;python -m SimpleHTTPServer" |
| echo "Then visit http://localhost:8000 with Chrome" |
| |
| cd $CURDIR |