Skip to content

Instantly share code, notes, and snippets.

Created February 1, 2016 02:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/9cd8097c6972f7aed1d5 to your computer and use it in GitHub Desktop.
Save anonymous/9cd8097c6972f7aed1d5 to your computer and use it in GitHub Desktop.
Voxelands build script for android
#install dependencies
dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'`
arch=`uname -m`
if [ $dist == "Ubuntu" ] && [ $arch == "x86_64" ]; then
#install ubuntu 64 bit dependencies
sudo apt-get install subversion git curl;
elif [ $dist == "Ubuntu" ] && [ $arch == "i686" ]; then
#install ubuntu 32 bit dependencies
sudo apt-get install subversion git curl;
elif [ $dist == "Arch" ] && [ $arch == "x86_64" ]; then
#install arch linux 64 bit dependencies
sudo pacman -S subversion git curl;
elif [ $dist == "Arch" ] && [ $arch == "i686" ]; then
#install arch linux 32 bit dependencies
sudo pacman -S subversion git curl;
else
echo $'Your distribution is not supported in the script.\nPlease install the dependencies manually'
exit 1
fi
#build variables
APP_PLATFORM="android-9"
TARGET_ABI="armeabi-v7a"
TARGET_ARCH_ABI="armeabi-v7a"
TARGET_TOOLCHAIN="arm-linux-androideabi-"
COMPILER_VERSION="4.8"
LOCAL_ARM_NEON="true"
WORK_DIRECTORY=$PWD
#source URLs
IRRLICHT_REVISION="5207"
IRRLICHT_URL_SVN="http://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@$IRRLICHT_REVISION"
FREETYPE_URL_GIT="https://github.com/cdave1/freetype2-android"
OGG_URL_GIT="https://github.com/vincentjames501/libvorbis-libogg-android"
OPENAL_URL_GIT="https://github.com/apportable/openal-soft"
# SQLITE3_FOLDER="sqlite-amalgamation-3090200"
# SQLITE3_URL="http://www.sqlite.org/2015/$SQLITE3_FOLDER.zip"
# ZLIB_URL_GIT="https://github.com/android/platform_external_zlib.git"
VOXELANDS_URL="https://gitlab.com/voxelands/voxelands.git"
#GET sources
mkdir -p src
cd src
svn co $IRRLICHT_URL_SVN irrlicht || exit 1
git clone $FREETYPE_URL_GIT freetype || exit 1
git clone $OGG_URL_GIT ogg || exit 1
git clone $OPENAL_URL_GIT openal || exit 1
# curl -O $SQLITE3_URL || exit 1; unzip $SQLITE3_FOLDER.zip; mv $SQLITE3_FOLDER sqlite; rm $SQLITE3_FOLDER.zip
# git clone $ZLIB_URL_GIT zlib || exit 1
git clone $VOXELANDS_URL voxelands || exit 1
#setup android sdk and ndk
make-standalone-toolchain.sh --platform=$APP_PLATFORM \
--toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION}
tar -xf /tmp/ndk-$USER/arm-linux-androideabi-4.8.tar.bz2
ln -s $WORK_DIRECTORY/arm-linux-androideabi-4.8/ android-toolchain
ANDROID_TOOLCHAIN_ROOT=$WORK_DIRECTORY/android-toolchain/
#compile and install libraries statically
#compiling irrlicht
cd $WORK_DIRECTORY/src/irrlicht/source/Irrlicht/Android/
ndk-build NDK_PROJECT_PATH=$WORK_DIRECTORY \
APP_BUILD_SCRIPT=./jni/Android.mk \
APP_PLATFORM=$APP_PLATFORM
#install irrlicht
mkdir -p $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/include/irrlicht
cp $WORK_DIRECTORY/src/irrlicht/include/* $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/include/irrlicht/
cp $WORK_DIRECTORY/obj/local/armeabi/libIrrlicht.a $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/lib/
#compiling freetype
cd $WORK_DIRECTORY/src/freetype/Android/jni/
ndk-build NDK_PROJECT_PATH=$WORK_DIRECTORY \
APP_BUILD_SCRIPT=./Android.mk \
APP_PLATFORM=$APP_PLATFORM
#install freetype
cp -r $WORK_DIRECTORY/src/freetype/include/* $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/include/
cp $WORK_DIRECTORY/obj/local/armeabi/libfreetype2-static.a $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/lib/
#compiling ogg
cd $WORK_DIRECTORY/src/ogg/jni/
sed -i 's/BUILD_SHARED_LIBRARY/BUILD_STATIC_LIBRARY/g' ./libogg/Android.mk
sed -i 's/BUILD_SHARED_LIBRARY/BUILD_STATIC_LIBRARY/g' ./libvorbis/Android.mk
sed -i 's/BUILD_SHARED_LIBRARY/BUILD_STATIC_LIBRARY/g' ./libvorbis-jni/Android.mk
ndk-build NDK_PROJECT_PATH=$WORK_DIRECTORY \
APP_BUILD_SCRIPT=./Android.mk \
APP_PLATFORM=$APP_PLATFORM
#install ogg
cp -r $WORK_DIRECTORY/src/ogg/jni/* $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/include/
cp $WORK_DIRECTORY/obj/local/armeabi/libogg.a \
$WORK_DIRECTORY/obj/local/armeabi/libvorbis.a \
$WORK_DIRECTORY/obj/local/armeabi/libvorbis-jni.a \
$ANDROID_TOOLCHAIN_ROOT/sysroot/usr/lib/
#compile openal
POST_FROYO="yes"
cd $WORK_DIRECTORY/src/openal/jni/
sed -i 's/BUILD_SHARED_LIBRARY/BUILD_STATIC_LIBRARY/g' ./Android.mk
#install openal
cp $WORK_DIRECTORY/obj/local/armeabi/libopenal.a $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/lib/
cp -r $WORK_DIRECTORY/src/openal/jni/OpenAL/include/AL/ $ANDROID_TOOLCHAIN_ROOT/sysroot/usr/include/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment