diff --git a/project/jni/android/Android.mk b/project/jni/android/Android.mk index f7e170f0e..e59ca6a40 100644 --- a/project/jni/android/Android.mk +++ b/project/jni/android/Android.mk @@ -4,16 +4,5 @@ include $(CLEAR_VARS) LOCAL_MODULE := android -ifneq ($(NDK_R5_TOOLCHAIN),) LOCAL_SRC_FILES := lib$(LOCAL_MODULE).so include $(PREBUILT_SHARED_LIBRARY) -else -LOCAL_SRC_FILES := dummy.c -include $(BUILD_SHARED_LIBRARY) -$(abspath $(LOCAL_PATH)/../../obj/local/armeabi/lib$(LOCAL_MODULE).a): $(LOCAL_PATH)/lib$(LOCAL_MODULE).a OVERRIDE_CUSTOM_LIB - cp -f $< $@ -$(abspath $(LOCAL_PATH)/../../obj/local/armeabi-v7a/lib$(LOCAL_MODULE).a): $(LOCAL_PATH)/lib$(LOCAL_MODULE).a OVERRIDE_CUSTOM_LIB - cp -f $< $@ -.PHONY: OVERRIDE_CUSTOM_LIB -OVERRIDE_CUSTOM_LIB: -endif diff --git a/project/jni/application/Android.mk b/project/jni/application/Android.mk index 6681350d2..7a6e7ab5b 100644 --- a/project/jni/application/Android.mk +++ b/project/jni/application/Android.mk @@ -50,53 +50,14 @@ LOCAL_STATIC_LIBRARIES := $(filter $(APP_AVAILABLE_STATIC_LIBS), $(COMPILED_LIBR APP_STL := gnustl_static -#LOCAL_STATIC_LIBRARIES += gnustl_static - LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog -lz # -lgnustl_static -LOCAL_LDFLAGS := -Lobj/local/armeabi +LOCAL_LDFLAGS := -Lobj/local/$(TARGET_ARCH_ABI) + LOCAL_LDFLAGS += $(APPLICATION_ADDITIONAL_LDFLAGS) -#ifneq ($NDK_R8B_TOOLCHAIN,) # They've changed the path, yet again -#LOCAL_C_INCLUDES += $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/include $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/libs/$(TARGET_ARCH_ABI)/include -#LOCAL_LDLIBS += -L$(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/$(NDK_TOOLCHAIN_VERSION)/libs/$(TARGET_ARCH_ABI) -lgnustl_static -#else -ifneq ($(NDK_R7_TOOLCHAIN)$(CRYSTAX_R7_TOOLCHAIN),) # NDK r7 broke it even more -#LOCAL_C_INCLUDES += $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/include -#LOCAL_LDLIBS += -L$(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/libs/$(TARGET_ARCH_ABI) -lgnustl_static -# You can have multiple C++ file extensions starting from NDK r7 LOCAL_CPP_EXTENSION := .cpp .cxx .cc -else -ifneq ($(NDK_R6_TOOLCHAIN),) # NDK r6 broke it -LOCAL_C_INCLUDES += $(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/include -LOCAL_LDLIBS += -L$(NDK_PATH)/sources/cxx-stl/gnu-libstdc++/libs/$(TARGET_ARCH_ABI) -lstdc++ -endif -endif -#endif - -#LIBS_WITH_LONG_SYMBOLS := $(strip $(shell \ -# for f in $(LOCAL_PATH)/../../obj/local/armeabi/*.so ; do \ -# if echo $$f | grep "libapplication[.]so" > /dev/null ; then \ -# continue ; \ -# fi ; \ -# if [ -e "$$f" ] ; then \ -# if nm -g $$f | cut -c 12- | egrep '.{128}' > /dev/null ; then \ -# echo $$f | grep -o 'lib[^/]*[.]so' ; \ -# fi ; \ -# fi ; \ -# done \ -#) ) -# -#ifneq "$(LIBS_WITH_LONG_SYMBOLS)" "" -#$(foreach F, $(LIBS_WITH_LONG_SYMBOLS), \ -#$(info Library $(F): abusing symbol names are: \ -#$(shell nm -g $(LOCAL_PATH)/../../obj/local/armeabi/$(F) | cut -c 12- | egrep '.{128}' ) ) \ -#$(info Library $(F) contains symbol names longer than 128 bytes, \ -#YOUR CODE WILL DEADLOCK WITHOUT ANY WARNING when you'll access such function - \ -#please make this library static to avoid problems. ) ) -#$(error Detected libraries with too long symbol names. Remove all files under project/obj/local/armeabi, make these libs static, and recompile) -#endif 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) @@ -114,18 +75,15 @@ OVERRIDE_CUSTOM_LIB: LOCAL_PATH_SDL_APPLICATION := $(LOCAL_PATH) +obj/local/$(TARGET_ARCH_ABI)/libapplication.so: $(LOCAL_PATH)/src/libapplication-$(TARGET_ARCH_ABI).so + +$(LOCAL_PATH)/src/libapplication-$(TARGET_ARCH_ABI).so: $(SDL_APP_LIB_DEPENDS) OVERRIDE_CUSTOM_LIB + cd $(LOCAL_PATH_SDL_APPLICATION)/src && ./AndroidBuild.sh $(TARGET_ARCH_ABI) + +# Old code has ARMv5 library compiled as libapplication.so ifeq ($(TARGET_ARCH_ABI),armeabi) -obj/local/armeabi/libapplication.so: $(LOCAL_PATH)/src/libapplication.so - -$(LOCAL_PATH)/src/libapplication.so: $(SDL_APP_LIB_DEPENDS) OVERRIDE_CUSTOM_LIB - cd $(LOCAL_PATH_SDL_APPLICATION)/src && ./AndroidBuild.sh armeabi +$(LOCAL_PATH)/src/libapplication-$(TARGET_ARCH_ABI).so: $(LOCAL_PATH)/src/libapplication.so + cd $(LOCAL_PATH_SDL_APPLICATION)/src && ln -s libapplication.so libapplication-$(TARGET_ARCH_ABI).so endif -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) -obj/local/armeabi-v7a/libapplication.so: $(LOCAL_PATH)/src/libapplication-armeabi-v7a.so - -$(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 +endif # $(APPLICATION_CUSTOM_BUILD_SCRIPT) diff --git a/project/jni/application/ballfield/AndroidAppSettings.cfg b/project/jni/application/ballfield/AndroidAppSettings.cfg index f18ad0e81..96691bae5 100644 --- a/project/jni/application/ballfield/AndroidAppSettings.cfg +++ b/project/jni/application/ballfield/AndroidAppSettings.cfg @@ -166,7 +166,7 @@ FirstStartMenuOptions='' # Enable multi-ABI binary, with hardware FPU support - it will also work on old devices, # but .apk size is 2x bigger (y) / (n) / (x86) / (all) -MultiABI=y +MultiABI=all # Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower AppMinimumRAM=0 diff --git a/project/jni/application/setEnvironment-r4b.sh b/project/jni/application/setEnvironment-r4b.sh deleted file mode 100755 index 0bd509ab6..000000000 --- a/project/jni/application/setEnvironment-r4b.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -IFS=' -' - -MYARCH=linux-x86 -if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86 -fi -if uname -s | grep -i "darwin" > /dev/null ; then - MYARCH=darwin-x86 -fi -if uname -s | grep -i "windows" > /dev/null ; then - MYARCH=windows-x86 -fi - -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - -GCCVER=4.4.0 -PLATFORMVER=android-8 -LOCAL_PATH=`dirname $0` -LOCAL_PATH=`cd $LOCAL_PATH && pwd` -STL_INCLUDE="-I$LOCAL_PATH/../stlport/stlport -fno-exceptions -fno-rtti" -STL_LIB="$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so $LOCAL_PATH/../../obj/local/armeabi/libstlport.a" -if [ -n "`echo $NDK | grep '[-]crystax'`" ] ; then - STL_INCLUDE="-fexceptions -frtti" - STL_LIB="-lstdc++" -fi - -APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_SHARED_LIBS=$( -echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do - STATIC=`echo $APP_AVAILABLE_STATIC_LIBS application sdl_main stlport stdout-test | grep "\\\\b$LIB\\\\b"` - if [ -n "$STATIC" ] ; then true - else - echo $LIB - fi -done -) - -CFLAGS="-I$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/include \ --fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums \ --D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID \ --Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -O2 \ --fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ --Wa,--noexecstack -DNDEBUG -g \ --I$LOCAL_PATH/../sdl-1.2/include $STL_INCLUDE \ -`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" - -LDFLAGS="-nostdlib -Wl,-soname,libapplication.so -Wl,-shared,-Bsymbolic \ --Wl,--whole-archive -Wl,--no-whole-archive \ -$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/lib/gcc/arm-eabi/4.4.0/libgcc.a \ -`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \ -$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \ -$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \ --Wl,--no-undefined -Wl,-z,noexecstack \ --L$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \ --lGLESv1_CM -ldl -llog -lz \ --Wl,-rpath-link=$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \ --L$LOCAL_PATH/../../obj/local/armeabi $STL_LIB" - -env PATH=$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin:$LOCAL_PATH:$PATH \ -CFLAGS="$CFLAGS" \ -CXXFLAGS="$CFLAGS" \ -LDFLAGS="$LDFLAGS" \ -CC="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \ -CXX="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-g++" \ -RANLIB="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ranlib" \ -LD="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \ -AR="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ar" \ -CPP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-cpp $CFLAGS" \ -NM="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-nm" \ -AS="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-as" \ -STRIP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-strip" \ -"$@" diff --git a/project/jni/application/setEnvironment-r5b.sh b/project/jni/application/setEnvironment-r5b.sh deleted file mode 100755 index be0fe6ded..000000000 --- a/project/jni/application/setEnvironment-r5b.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh - -IFS=' -' - -MYARCH=linux-x86 -if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86 -fi -if uname -s | grep -i "darwin" > /dev/null ; then - MYARCH=darwin-x86 -fi -if uname -s | grep -i "windows" > /dev/null ; then - MYARCH=windows-x86 -fi - -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - -#echo NDK $NDK -GCCPREFIX=arm-linux-androideabi -GCCVER=4.4.3 -PLATFORMVER=android-8 -LOCAL_PATH=`dirname $0` -LOCAL_PATH=`cd $LOCAL_PATH && pwd` -#echo LOCAL_PATH $LOCAL_PATH - -APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_SHARED_LIBS=$( -echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do - STATIC=`echo $APP_AVAILABLE_STATIC_LIBS application sdl_main stlport stdout-test | grep "\\\\b$LIB\\\\b"` - if [ -n "$STATIC" ] ; then true - else - echo $LIB - fi -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="\ --fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \ --march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ --isystem$NDK/platforms/$PLATFORMVER/arch-arm/usr/include -Wa,--noexecstack \ --DANDROID \ --DNDEBUG -O2 -g \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/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" - -SHARED="-shared -Wl,-soname,libapplication.so" -if [ -n "$BUILD_EXECUTABLE" ]; then - SHARED= -fi -if [ -n "$NO_SHARED_LIBS" ]; then - APP_SHARED_LIBS= -fi - - -LDFLAGS="\ -$SHARED \ ---sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \ -`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/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 \ --lgnustl_static \ --L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \ --L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \ --Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ \ -$MISSING_LIB $LDFLAGS" - -#echo env CFLAGS=\""$CFLAGS"\" LDFLAGS=\""$LDFLAGS"\" "$@" - -env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ -CFLAGS="$CFLAGS" \ -CXXFLAGS="$CXXFLAGS $CFLAGS" \ -LDFLAGS="$LDFLAGS" \ -CC="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" \ -CXX="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ -RANLIB="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ -LD="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ -AR="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ -CPP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" \ -NM="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ -"$@" diff --git a/project/jni/boost/Android.mk b/project/jni/boost/Android.mk index 35122b1d4..7c19292ee 100644 --- a/project/jni/boost/Android.mk +++ b/project/jni/boost/Android.mk @@ -2,6 +2,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +ifeq ($(TARGET_ARCH),arm) + LOCAL_MODULE := $(notdir $(LOCAL_PATH)) ifneq ($(LOCAL_MODULE),boost) @@ -11,3 +13,5 @@ LOCAL_SRC_FILES := lib/arm-linux-androideabi-4.6/lib$(LOCAL_MODULE).a include $(PREBUILT_STATIC_LIBRARY) endif + +endif # $(TARGET_ARCH),arm diff --git a/project/jni/ffmpeg/Android.mk b/project/jni/ffmpeg/Android.mk index 04eb86dd5..6edbf6389 100644 --- a/project/jni/ffmpeg/Android.mk +++ b/project/jni/ffmpeg/Android.mk @@ -5,6 +5,8 @@ LOCAL_PATH:=$(call my-dir) #FFMPEG_REBUILD_FROM_SOURCE:=yes +ifeq ($(TARGET_ARCH),arm) + ifneq ($(FFMPEG_REBUILD_FROM_SOURCE),yes) # FFMPEG compilation is hacky and buggy, so we're using prebuilt libraries by default @@ -626,5 +628,7 @@ ifeq ($(CONFIG_FFSERVER),yes) endif #======================================================================== endif #CONFIG_FFMPEG_COMPILE_TOOLS -endif -endif + +endif # notdir $(LOCAL_PATH)),ffmpeg +endif # FFMPEG_REBUILD_FROM_SOURCE),yes +endif # $(TARGET_ARCH),arm diff --git a/project/jni/python/Android.mk b/project/jni/python/Android.mk index ec6540b13..4cb6abd22 100644 --- a/project/jni/python/Android.mk +++ b/project/jni/python/Android.mk @@ -2,6 +2,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +ifeq ($(TARGET_ARCH),arm) + LOCAL_MODULE := python LOCAL_C_INCLUDES := $(LOCAL_PATH)/include @@ -12,21 +14,7 @@ LOCAL_SHARED_LIBRARIES := LOCAL_LDLIBS := -ifneq ($(NDK_R5_TOOLCHAIN),) - LOCAL_SRC_FILES := libpython.so include $(PREBUILT_SHARED_LIBRARY) -else -LOCAL_SRC_FILES := dummy.c - -include $(BUILD_SHARED_LIBRARY) -$(realpath $(LOCAL_PATH)/../../obj/local/armeabi/libpython.so): $(LOCAL_PATH)/libpython.so OVERRIDE_CUSTOM_LIB - cp -f $< $@ - -$(realpath $(LOCAL_PATH)/../../obj/local/armeabi-v7a/libpython.so): $(LOCAL_PATH)/libpython.so OVERRIDE_CUSTOM_LIB - cp -f $< $@ - -.PHONY: OVERRIDE_CUSTOM_LIB -OVERRIDE_CUSTOM_LIB: -endif +endif # $(TARGET_ARCH),arm