#!/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