Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation
Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
This commit is contained in:
commit
b48e54aafe
1635 changed files with 472973 additions and 0 deletions
105
build-scripts/naclbuild.sh
Executable file
105
build-scripts/naclbuild.sh
Executable file
|
@ -0,0 +1,105 @@
|
|||
#!/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
|
Loading…
Add table
Add a link
Reference in a new issue