build-scripts/naclbuild.sh
author Gabriel Jacobo <gabomdq@gmail.com>
Fri, 20 Jun 2014 10:59:51 -0300
changeset 8877 0d691f3734ac
parent 8833 ae720d61d14d
child 8880 ee5117b56b93
permissions -rwxr-xr-x
Initialize nacl_io, removes SDL_NaClMount/Umount

It's just easier to use nacl_io's mount/umount directly.
     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"
    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