You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.5 KiB
105 lines
2.5 KiB
#!/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
|
|
|