build-scripts/naclbuild.sh
changeset 8833 ae720d61d14d
child 8877 0d691f3734ac
equal deleted inserted replaced
8832:408b0d563b27 8833:ae720d61d14d
       
     1 #!/bin/bash
       
     2 if [ -z "$1" ] && [ -z "$NACL_SDK_ROOT" ]; then
       
     3     echo "Usage: ./naclbuild ~/nacl/pepper_33"
       
     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