build-scripts/naclbuild.sh
changeset 8833 ae720d61d14d
child 8877 0d691f3734ac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-scripts/naclbuild.sh	Fri Jun 06 15:45:59 2014 -0300
@@ -0,0 +1,105 @@
+#!/bin/bash
+if [ -z "$1" ] && [ -z "$NACL_SDK_ROOT" ]; then
+    echo "Usage: ./naclbuild ~/nacl/pepper_33"
+    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"
+
+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