Files
love-android/jni/LuaJIT-2.1/buildandroid.sh
T

80 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
#================================================================#
# Build script based on
# https://github.com/moai/moai-dev/blob/master/ant/libmoai/jni/luajit/build.sh
#================================================================#
host_os=`uname -s | tr "[:upper:]" "[:lower:]"`
host_arch=`uname -m`
if [ -f android/armeabi/libluajit.a ] &&
[ -f android/armeabi-v7a/libluajit.a ] &&
[ -f android/x86/libluajit.a ]; then
echo "LuaJIT Already built"
exit 0
fi
NDK_BUILD_LOCATION=${ANDROID_NDK}
if [[ x$NDK_BUILD_LOCATION = "x" ]]; then
echo "The Android NDK must be on your path."
exit 1
fi
NDK="${NDK_BUILD_LOCATION%/ndk-build}"
if [[ x$NDK = "x" ]]; then
echo "The Android NDK must be on your path."
exit 1
fi
NDKABI=9
# Since OSX still has bash 3, we don't have associative arrays, fake them instead
armeabi=0
armeabiv7a=1
x86=2
NDKVER[$armeabi]="$NDK/toolchains/arm-linux-androideabi-4.8"
NDKP[$armeabi]="${NDKVER[$armeabi]}/prebuilt/${host_os}-${host_arch}/bin/arm-linux-androideabi-"
NDKF[$armeabi]="--sysroot \"$NDK/platforms/android-$NDKABI/arch-arm\""
CFLAGS[$armeabi]=""
NDKVER[$armeabiv7a]="${NDKVER[$armeabi]}"
NDKP[$armeabiv7a]="${NDKP[$armeabi]}"
NDKF[$armeabiv7a]="${NDKF[$armeabi]}"
CFLAGS[$armeabiv7a]="${CFLAGS[$armeabi]}"
NDKVER[$x86]="$NDK/toolchains/x86-4.8"
NDKP[$x86]="${NDKVER[$x86]}/prebuilt/${host_os}-${host_arch}/bin/i686-linux-android-"
NDKF[$x86]="--sysroot \"$NDK/platforms/android-$NDKABI/arch-x86\""
CFLAGS[$x86]="-DLUAJIT_NO_LOG2"
buildLuaJIT()
{
archkey="$1"
arch="$2"
ndkarch="$3"
DESTDIR=../android/$arch
mkdir -p $DESTDIR 2>/dev/null
rm "$DESTDIR"/*.a 2>/dev/null
make clean
make HOST_CC="gcc -m32" CROSS="${NDKP[$archkey]}" TARGET_SYS=Linux TARGET_FLAGS="${NDKF[$archkey]} $ndkarch" TARGET_CFLAGS="${CFLAGS[$archkey]}" libluajit.a
if [ -f libluajit.a ]; then
mv libluajit.a $DESTDIR/libluajit.a
fi;
}
cd src
# Android/ARM, armeabi (ARMv5TE soft-float), Android 2.2+ (Froyo)
buildLuaJIT $armeabi armeabi
# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.0+ (ICS)
buildLuaJIT $armeabiv7a armeabi-v7a "-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -Wl,--fix-cortex-a8"
# Android/x86
buildLuaJIT $x86 x86
make clean