diff --git a/build.sh b/build.sh index cc7854d17..26ee953b8 100755 --- a/build.sh +++ b/build.sh @@ -95,46 +95,67 @@ $quick_rebuild || rm -r -f project/bin/* # New Android SDK introduced some lame- cd ../../../.. } -cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j$NCPU V=1 && \ - { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ +strip_libs() { + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ echo Stripping libapplication-armeabi.so by hand && \ rm obj/local/armeabi/libapplication.so && \ cp jni/application/src/libapplication-armeabi.so obj/local/armeabi/libapplication.so && \ cp jni/application/src/libapplication-armeabi.so libs/armeabi/libapplication.so && \ - `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so \ - || true ; } && \ - { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ grep "MultiABI=" ../AndroidAppSettings.cfg | grep "y\\|all\\|armeabi-v7a" > /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-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi-v7a/libapplication.so \ - || true ; } && \ - { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi-v7a/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ grep "MultiABI=" ../AndroidAppSettings.cfg | grep "armeabi-v7a-hard" > /dev/null && \ echo Stripping libapplication-armeabi-v7a-hard.so by hand && \ rm obj/local/armeabi-v7a-hard/libapplication.so && \ cp jni/application/src/libapplication-armeabi-v7a-hard.so obj/local/armeabi-v7a-hard/libapplication.so && \ cp jni/application/src/libapplication-armeabi-v7a-hard.so libs/armeabi-v7a/libapplication.so && \ - `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi-v7a/libapplication.so \ - || true ; } && \ - { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/arm-linux-androideabi-${GCCVER}/prebuilt/$MYARCH/bin/arm-linux-androideabi-strip --strip-unneeded libs/armeabi-v7a/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ grep "MultiABI=" ../AndroidAppSettings.cfg | grep "all\\|mips" > /dev/null && \ echo Stripping libapplication-mips.so by hand && \ rm obj/local/mips/libapplication.so && \ cp jni/application/src/libapplication-mips.so obj/local/mips/libapplication.so && \ cp jni/application/src/libapplication-mips.so libs/mips/libapplication.so && \ - `which ndk-build | sed 's@/ndk-build@@'`/toolchains/mipsel-linux-android-${GCCVER}/prebuilt/$MYARCH/bin/mipsel-linux-android-strip --strip-unneeded libs/mips/libapplication.so \ - || true ; } && \ - { grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/mipsel-linux-android-${GCCVER}/prebuilt/$MYARCH/bin/mipsel-linux-android-strip --strip-unneeded libs/mips/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ grep "MultiABI=" ../AndroidAppSettings.cfg | grep "all\\|x86" > /dev/null && \ echo Stripping libapplication-x86.so by hand && \ rm obj/local/x86/libapplication.so && \ cp jni/application/src/libapplication-x86.so obj/local/x86/libapplication.so && \ cp jni/application/src/libapplication-x86.so libs/x86/libapplication.so && \ - `which ndk-build | sed 's@/ndk-build@@'`/toolchains/x86-${GCCVER}/prebuilt/$MYARCH/bin/i686-linux-android-strip --strip-unneeded libs/x86/libapplication.so \ - || true ; } && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/x86-${GCCVER}/prebuilt/$MYARCH/bin/i686-linux-android-strip --strip-unneeded libs/x86/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + grep "MultiABI=" ../AndroidAppSettings.cfg | grep "all\\|x86_64" > /dev/null && \ + echo Stripping libapplication-x86_64.so by hand && \ + rm obj/local/x86_64/libapplication.so && \ + cp jni/application/src/libapplication-x86_64.so obj/local/x86_64/libapplication.so && \ + cp jni/application/src/libapplication-x86_64.so libs/x86_64/libapplication.so && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/x86_64-4.9/prebuilt/$MYARCH/bin/x86_64-linux-android-strip --strip-unneeded libs/x86_64/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + grep "MultiABI=" ../AndroidAppSettings.cfg | grep "all\\|arm64-v8a" > /dev/null && \ + echo Stripping libapplication-arm64-v8a.so by hand && \ + rm obj/local/arm64-v8a/libapplication.so && \ + cp jni/application/src/libapplication-arm64-v8a.so obj/local/arm64-v8a/libapplication.so && \ + cp jni/application/src/libapplication-arm64-v8a.so libs/arm64-v8a/libapplication.so && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/aarch64-linux-android-4.9/prebuilt/$MYARCH/bin/aarch64-linux-android-strip --strip-unneeded libs/arm64-v8a/libapplication.so + grep "CustomBuildScript=y" ../AndroidAppSettings.cfg > /dev/null && \ + grep "MultiABI=" ../AndroidAppSettings.cfg | grep "all\\|mips64" > /dev/null && \ + echo Stripping libapplication-mips64.so by hand && \ + rm obj/local/mips64/libapplication.so && \ + cp jni/application/src/libapplication-mips64.so obj/local/mips64/libapplication.so && \ + cp jni/application/src/libapplication-mips64.so libs/mips64/libapplication.so && \ + `which ndk-build | sed 's@/ndk-build@@'`/toolchains/mips64el-linux-android-4.9/prebuilt/$MYARCH/bin/mips64el-linux-android-strip --strip-unneeded libs/mips64/libapplication.so + return 0 +} + +cd project && env PATH=$NDKBUILDPATH BUILD_NUM_CPUS=$NCPU nice -n19 ndk-build -j$NCPU V=1 && \ + strip_libs && \ cd .. && ./copyAssets.sh && cd project && \ { if $build_release ; then \ $quick_rebuild && { \ diff --git a/project/jni/application/openarena/AndroidAppSettings.cfg b/project/jni/application/openarena/AndroidAppSettings.cfg index 501cac1e9..c2f74335a 100644 --- a/project/jni/application/openarena/AndroidAppSettings.cfg +++ b/project/jni/application/openarena/AndroidAppSettings.cfg @@ -213,7 +213,7 @@ FirstStartMenuOptions='' # Specify architectures to compile, 'all' or 'y' to compile for all architectures. # Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips -MultiABI='armeabi-v7a' +MultiABI='armeabi-v7a x86 mips' # Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower AppMinimumRAM=300 diff --git a/project/jni/application/openarena/AndroidBuild.sh b/project/jni/application/openarena/AndroidBuild.sh index 039af7c4c..7e07a6d65 100755 --- a/project/jni/application/openarena/AndroidBuild.sh +++ b/project/jni/application/openarena/AndroidBuild.sh @@ -5,7 +5,6 @@ LOCAL_PATH=`cd $LOCAL_PATH && pwd` if [ "$1" = "armeabi-v7a" ]; then ( mkdir -p AndroidData - [ -e libapplication.so ] || ln -s libapplication-armeabi.so libapplication.so make -j8 -C vm BUILD_MISSIONPACK=0 || exit 1 cd vm/build/release-linux-`uname -m`/baseq3 #rm -f ../../../../AndroidData/binaries.zip ../../../../AndroidData/pak7-android.pk3 diff --git a/project/jni/application/xrick/AndroidAppSettings.cfg b/project/jni/application/xrick/AndroidAppSettings.cfg index 4ad9fff8a..0ed7c9755 100644 --- a/project/jni/application/xrick/AndroidAppSettings.cfg +++ b/project/jni/application/xrick/AndroidAppSettings.cfg @@ -7,10 +7,10 @@ AppName="XRick" AppFullName=net.xrick.sdl # Application version code (integer) -AppVersionCode=102121208 +AppVersionCode=102121209 # Application user-visible version name (string) -AppVersionName="021212.08" +AppVersionName="021212.09" # Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' # If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu diff --git a/project/jni/flac/config.h b/project/jni/flac/config.h index 153558c0d..8ebfd0f62 100644 --- a/project/jni/flac/config.h +++ b/project/jni/flac/config.h @@ -113,7 +113,11 @@ #define PACKAGE_VERSION "" /* The size of a `void*', as computed by sizeof. */ +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else #define SIZEOF_VOIDP 4 +#endif /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 diff --git a/project/jni/jpeg/Android.mk b/project/jni/jpeg/Android.mk index 809bd517b..d8f29e80f 100644 --- a/project/jni/jpeg/Android.mk +++ b/project/jni/jpeg/Android.mk @@ -30,7 +30,7 @@ LOCAL_SRC_FILES += jidctint.c jidctfst.S endif LOCAL_C_INCLUDES := $(LOCAL_PATH)/include -LOCAL_CFLAGS += -DAVOID_TABLES -DANDROID_RGB +LOCAL_CFLAGS += -DAVOID_TABLES LOCAL_CFLAGS += -O3 -fstrict-aliasing -fprefetch-loop-arrays LOCAL_MODULE:= jpeg diff --git a/project/jni/openal/src/config.h b/project/jni/openal/src/config.h index 5ddf8411c..3739bd667 100644 --- a/project/jni/openal/src/config.h +++ b/project/jni/openal/src/config.h @@ -42,7 +42,13 @@ #define HAVE___INT64 /* Define to the size of a long int type */ +#ifdef __LP64__ +#define SIZEOF_LONG 8 +#define SIZEOF_VOIDP 8 +#else #define SIZEOF_LONG 4 +#define SIZEOF_VOIDP 4 +#endif /* Define to the size of a long long int type */ #define SIZEOF_LONG_LONG 8 @@ -51,7 +57,6 @@ #define SIZEOF_UINT 4 /* Define to the size of a void pointer type */ -#define SIZEOF_VOIDP 4 /* Define if we have GCC's destructor attribute */ #define HAVE_GCC_DESTRUCTOR 1 diff --git a/project/jni/sdl-1.2/include/SDL_config_android.h b/project/jni/sdl-1.2/include/SDL_config_android.h index 59e6c6d11..c2729498e 100644 --- a/project/jni/sdl-1.2/include/SDL_config_android.h +++ b/project/jni/sdl-1.2/include/SDL_config_android.h @@ -61,8 +61,12 @@ #define HAVE_STDIO_H 1 - +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else #define SIZEOF_VOIDP 4 +#endif + #define SDL_HAS_64BIT_TYPE 1 /* FireSlash found that SDL native memcpy crashes sometimes, these defines fix it (and they are faster) */