naclbuild.sh (2516B)
1 #!/bin/bash 2 if [ -z "$1" ] && [ -z "$NACL_SDK_ROOT" ]; then 3 echo "Usage: ./naclbuild ~/nacl/pepper_35" 4 echo "This will build SDL for Native Client, and testgles2.c as a demo" 5 echo "You can set env vars CC, AR, LD and RANLIB to override the default PNaCl toolchain used" 6 echo "You can set env var SOURCES to select a different source file than testgles2.c" 7 exit 1 8 fi 9 10 if [ -n "$1" ]; then 11 NACL_SDK_ROOT="$1" 12 fi 13 14 CC="" 15 16 if [ -n "$2" ]; then 17 CC="$2" 18 fi 19 20 echo "Using SDK at $NACL_SDK_ROOT" 21 22 export NACL_SDK_ROOT="$NACL_SDK_ROOT" 23 export CFLAGS="$CFLAGS -I$NACL_SDK_ROOT/include -I$NACL_SDK_ROOT/include/pnacl" 24 25 NCPUS="1" 26 case "$OSTYPE" in 27 darwin*) 28 NCPU=`sysctl -n hw.ncpu` 29 ;; 30 linux*) 31 if [ -n `which nproc` ]; then 32 NCPUS=`nproc` 33 fi 34 ;; 35 *);; 36 esac 37 38 CURDIR=`pwd -P` 39 SDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )" 40 BUILDPATH="$SDLPATH/build/nacl" 41 TESTBUILDPATH="$BUILDPATH/test" 42 SDL2_STATIC="$BUILDPATH/build/.libs/libSDL2.a" 43 mkdir -p $BUILDPATH 44 mkdir -p $TESTBUILDPATH 45 46 if [ -z "$CC" ]; then 47 export CC="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-clang" 48 fi 49 if [ -z "$AR" ]; then 50 export AR="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar" 51 fi 52 if [ -z "$LD" ]; then 53 export LD="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ar" 54 fi 55 if [ -z "$RANLIB" ]; then 56 export RANLIB="$NACL_SDK_ROOT/toolchain/linux_pnacl/bin/pnacl-ranlib" 57 fi 58 59 if [ -z "$SOURCES" ]; then 60 export SOURCES="$SDLPATH/test/testgles2.c" 61 fi 62 63 if [ ! -f "$CC" ]; then 64 echo "Could not find compiler at $CC" 65 exit 1 66 fi 67 68 69 70 71 cd $BUILDPATH 72 $SDLPATH/configure --host=pnacl --prefix $TESTBUILDPATH 73 make -j$NCPUS CFLAGS="$CFLAGS -I./include" 74 make install 75 76 if [ ! -f "$SDL2_STATIC" ]; then 77 echo "Build failed! $SDL2_STATIC" 78 exit 1 79 fi 80 81 echo "Building test" 82 cp -f $SDLPATH/test/nacl/* $TESTBUILDPATH 83 # Some tests need these resource files 84 cp -f $SDLPATH/test/*.bmp $TESTBUILDPATH 85 cp -f $SDLPATH/test/*.wav $TESTBUILDPATH 86 cp -f $SDL2_STATIC $TESTBUILDPATH 87 88 # Copy user sources 89 _SOURCES=($SOURCES) 90 for src in "${_SOURCES[@]}" 91 do 92 cp $src $TESTBUILDPATH 93 done 94 export SOURCES="$SOURCES" 95 96 cd $TESTBUILDPATH 97 make -j$NCPUS CONFIG="Release" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include" 98 make -j$NCPUS CONFIG="Debug" CFLAGS="$CFLAGS -I$TESTBUILDPATH/include/SDL2 -I$SDLPATH/include" 99 100 echo 101 echo "Run the test with: " 102 echo "cd $TESTBUILDPATH;python -m SimpleHTTPServer" 103 echo "Then visit http://localhost:8000 with Chrome" 104 105 cd $CURDIR