Merge branch 'sdl_android' of github.com:pelya/commandergenius into sdl_android

This commit is contained in:
pelya
2012-09-28 17:11:21 +03:00
11 changed files with 58 additions and 50 deletions

3
.gitmodules vendored
View File

@@ -25,3 +25,6 @@
[submodule "project/jni/application/scummvm/scummvm"]
path = project/jni/application/scummvm/scummvm
url = https://github.com/scummvm/scummvm.git
[submodule "project/jni/application/openarena/vm"]
path = project/jni/application/openarena/vm
url = https://github.com/pelya/openarena-vm

View File

@@ -44,12 +44,19 @@ fi
rm -r -f project/bin/* # New Android SDK introduced some lame-ass optimizations to the build system which we should take care about
cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j$NCPU && \
{ grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \
[ -`which ndk-build | xargs readlink -f | grep '/android-ndk-r[56789]'` != - ] && \
echo Stripping libapplication.so by hand \
echo Stripping libapplication.so by hand && \
rm obj/local/armeabi/libapplication.so && \
cp jni/application/src/libapplication.so obj/local/armeabi && \
cp jni/application/src/libapplication.so libs/armeabi && \
`which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so \
cp jni/application/src/libapplication.so obj/local/armeabi/ && \
cp jni/application/src/libapplication.so libs/armeabi/ && \
`which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-4.6/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so \
|| true ; } && \
{ grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \
grep "MultiABI=y" ../AndroidAppSettings.cfg > /dev/null && \
echo Stripping libapplication-armeabi-v7a.so by hand && \
rm obj/local/armeabi-v7a/libapplication.so && \
cp jni/application/src/libapplication-armeabi-v7a.so obj/local/armeabi-v7a/libapplication.so && \
cp jni/application/src/libapplication-armeabi-v7a.so libs/armeabi-v7a/libapplication.so && \
`which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-4.6/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi-v7a/libapplication.so \
|| true ; } && \
ant debug && \
$install_apk && [ -n "`adb devices | tail -n +2`" ] && \

View File

@@ -93,8 +93,9 @@ endif
#$(error Detected libraries with too long symbol names. Remove all files under project/obj/local/armeabi, make these libs static, and recompile)
#endif
APP_LIB_DEPENDS := $(foreach LIB, $(LOCAL_SHARED_LIBRARIES), $(abspath $(LOCAL_PATH)/../../obj/local/armeabi/lib$(LIB).so))
APP_LIB_DEPENDS += $(foreach LIB, $(LOCAL_STATIC_LIBRARIES), $(abspath $(LOCAL_PATH)/../../obj/local/armeabi/lib$(LIB).a))
SDL_APP_LIB_DEPENDS := $(LOCAL_PATH)/src/AndroidBuild.sh $(LOCAL_PATH)/src/AndroidAppSettings.cfg
SDL_APP_LIB_DEPENDS += $(foreach LIB, $(LOCAL_SHARED_LIBRARIES), obj/local/$(TARGET_ARCH_ABI)/lib$(LIB).so)
SDL_APP_LIB_DEPENDS += $(foreach LIB, $(LOCAL_STATIC_LIBRARIES), obj/local/$(TARGET_ARCH_ABI)/lib$(LIB).a)
include $(BUILD_SHARED_LIBRARY)
@@ -103,28 +104,23 @@ ifneq ($(APPLICATION_CUSTOM_BUILD_SCRIPT),)
# TODO: here we're digging inside NDK internal build system, that's not portable
# NDK r5b provided the $(PREBUILT_SHARED_LIBRARY) target, however it requires .so file to be already present on disk
# Also I cannot just launch AndroidBuild.sh from makefile because other libraries are not rebuilt and linking will fail
.PHONY: OVERRIDE_CUSTOM_LIB
OVERRIDE_CUSTOM_LIB:
LOCAL_PATH_SDL_APPLICATION := $(LOCAL_PATH)
.NOTPARALLEL: $(abspath $(LOCAL_PATH)/../../obj/local/armeabi/libapplication.so) $(LOCAL_PATH)/src/libapplication.so
ifeq ($(TARGET_ARCH_ABI),armeabi)
obj/local/armeabi/libapplication.so: $(LOCAL_PATH)/src/libapplication.so
# Enforce rebuilding
$(shell rm -f $(LOCAL_PATH)/src/libapplication.so)
$(shell mkdir -p $(LOCAL_PATH)/../../obj/local/armeabi)
$(shell touch $(LOCAL_PATH)/../../obj/local/armeabi/libapplication.so)
$(LOCAL_PATH)/src/libapplication.so: $(SDL_APP_LIB_DEPENDS) OVERRIDE_CUSTOM_LIB
cd $(LOCAL_PATH_SDL_APPLICATION)/src && ./AndroidBuild.sh armeabi
endif
$(LOCAL_PATH)/src/libapplication.so: $(LOCAL_PATH)/src/AndroidBuild.sh $(LOCAL_PATH)/src/AndroidAppSettings.cfg $(APP_LIB_DEPENDS)
echo Launching script $(LOCAL_PATH_SDL_APPLICATION)/AndroidBuild.sh
cd $(LOCAL_PATH_SDL_APPLICATION)/src && ./AndroidBuild.sh
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
obj/local/armeabi-v7a/libapplication.so: $(LOCAL_PATH)/src/libapplication-armeabi-v7a.so
$(abspath $(LOCAL_PATH)/../../obj/local/armeabi/libapplication.so): $(LOCAL_PATH)/src/libapplication.so OVERRIDE_CUSTOM_LIB
cp -f $< $@
obj/local/armeabi/libapplication.so: $(LOCAL_PATH)/src/libapplication.so OVERRIDE_CUSTOM_LIB
cp -f $< $@
.PHONY: OVERRIDE_CUSTOM_LIB
OVERRIDE_CUSTOM_LIB:
$(LOCAL_PATH)/src/libapplication-armeabi-v7a.so: $(SDL_APP_LIB_DEPENDS) OVERRIDE_CUSTOM_LIB
cd $(LOCAL_PATH_SDL_APPLICATION)/src && ./AndroidBuild.sh armeabi-v7a
endif
endif

View File

@@ -5,7 +5,7 @@ AppName="OpenArena"
AppFullName=ws.openarena.sdl
ScreenOrientation=h
InhibitSuspend=n
AppDataDownloadUrl="Game data|http://sourceforge.net/projects/libsdl-android/files/OpenArena/oa-0.8.8-1.zip/download"
AppDataDownloadUrl="!Game data|http://sourceforge.net/projects/libsdl-android/files/OpenArena/oa-0.8.8-1.zip/download^!Game logic|:baseoa/pak7-android.pk3:vm.zip"
VideoDepthBpp=24
NeedDepthBuffer=y
NeedStencilBuffer=y
@@ -33,7 +33,7 @@ RedefinedKeysScreenKb="0 1 2 3 4 5 6 7 8 9"
StartupMenuButtonTimeout=3000
HiddenMenuOptions='OptionalDownloadConfig DisplaySizeConfig'
FirstStartMenuOptions=''
MultiABI=n
MultiABI=y
AppVersionCode=08803
AppVersionName="0.8.8.03"
ResetSdlConfigForThisVersion=n

View File

@@ -3,8 +3,17 @@
LOCAL_PATH=`dirname $0`
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
../setEnvironment.sh make -j8 -C engine release \
PLATFORM=android ARCH=arm USE_GLES=1 USE_LOCAL_HEADERS=0 \
../setEnvironment-$1.sh make -j8 -C engine release \
PLATFORM=android ARCH=$1 USE_GLES=1 USE_LOCAL_HEADERS=0 \
USE_OPENAL=0 USE_CURL=1 USE_CURL_DLOPEN=0 USE_CODEC_VORBIS=1 USE_MUMBLE=0 USE_FREETYPE=1 \
USE_RENDERER_DLOPEN=0 USE_INTERNAL_ZLIB=0 USE_INTERNAL_JPEG=1 &&
mv -f engine/build/release-android-arm/openarena.arm libapplication.so
USE_RENDERER_DLOPEN=0 USE_INTERNAL_ZLIB=0 USE_INTERNAL_JPEG=1 && \
echo "Copying engine/build/release-android-$1/openarena.$1 -> libapplication-$1.so" && \
cp -f engine/build/release-android-$1/openarena.$1 libapplication-$1.so
[ "$1" = "armeabi" ] && (
[ -e libapplication.so ] || ln -s libapplication-armeabi.so libapplication.so
make -j8 -C vm
cd vm/build/release-*/baseq3
zip -r vm.zip vm
cmp -s vm.zip ../../../../AndroidData/vm.zip || mv -f vm.zip ../../../../AndroidData/vm.zip
)

Binary file not shown.

View File

@@ -20,10 +20,11 @@ NDK=`readlink -f $NDK`
#echo NDK $NDK
GCCPREFIX=arm-linux-androideabi
GCCVER=4.4.3
GCCVER=4.6
PLATFORMVER=android-8
LOCAL_PATH=`dirname $0`
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
ARCH=armeabi-v7a
#echo LOCAL_PATH $LOCAL_PATH
APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'`
@@ -42,24 +43,14 @@ done
MISSING_INCLUDE=
MISSING_LIB=
#if [ -n "$CRYSTAX_WCHAR" ]; then
# MISSING_INCLUDE="$MISSING_INCLUDE -isystem$NDK/sources/crystax/include"
# MISSING_LIB="$MISSING_LIB $NDK/sources/crystax/libs/armeabi/libcrystax_static.a"
#fi
#if [ -n "$MISSING_LIBCXX_PATH" ]; then
# MISSING_INCLUDE="$MISSING_INCLUDE -isystem$NDK/sources/cxx-stl/gnu-libstdc++/include"
# MISSING_LIB="$MISSING_LIB -lgnustl_static -lsupc++"
#fi
CFLAGS="\
-MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \
-Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \
-fpic -ffunction-sections -funwind-tables \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \
-march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \
-DANDROID -Wa,--noexecstack -g -O2 -DNDEBUG -g \
-isystem$NDK/platforms/$PLATFORMVER/arch-arm/usr/include \
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/include \
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include \
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/$GCCVER/include \
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/$GCCVER/libs/$ARCH/include \
-isystem$LOCAL_PATH/../sdl-1.2/include \
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"` \
$MISSING_INCLUDE $CFLAGS"
@@ -75,17 +66,17 @@ fi
LDFLAGS="\
$SHARED \
--sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi-v7a/lib\1.so@g\"` \
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"` \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libGLESv1_CM.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libdl.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/liblog.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libz.so \
-L$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a \
-L$NDK/sources/cxx-stl/gnu-libstdc++/$GCCVER/libs/$ARCH \
-lgnustl_static \
-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \
-L$LOCAL_PATH/../../obj/local/armeabi-v7a \
-L$LOCAL_PATH/../../obj/local/$ARCH \
-Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-z,noexecstack \
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ \
$MISSING_LIB $LDFLAGS"

View File

@@ -0,0 +1 @@
setEnvironment.sh