From 968954a3cc8dbdb818813ecd9c8476ff94447f7d Mon Sep 17 00:00:00 2001 From: MoNTE48 Date: Thu, 5 Jul 2018 01:03:25 +0200 Subject: [PATCH] Android+iOS: Disable show Irrlicht errors. Disable flying in survival. Android - optimization GUI dimension. --- build/android/Makefile | 860 +++++++++--------- .../patches/irrlicht-optimization.patch | 2 +- src/client/inputhandler.cpp | 8 +- src/defaultsettings.cpp | 66 +- src/game.cpp | 3 + 5 files changed, 467 insertions(+), 472 deletions(-) diff --git a/build/android/Makefile b/build/android/Makefile index f7d541937..74ad28552 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -115,15 +115,15 @@ ANDROID_SDK = $(shell grep '^sdk\.dir' local.properties | sed 's/^.*=[[:space:]] ANDROID_NDK = $(shell grep '^ndk\.dir' local.properties | sed 's/^.*=[[:space:]]*//') debug : local.properties - export NDEBUG=; \ - export BUILD_TYPE=debug; \ + export NDEBUG=; \ + export BUILD_TYPE=debug; \ $(MAKE) apk all : debug release release : local.properties - @export NDEBUG=1; \ - export BUILD_TYPE=release; \ + @export NDEBUG=1; \ + export BUILD_TYPE=release; \ $(MAKE) apk reconfig: delconfig @@ -133,74 +133,74 @@ delconfig: $(RM) local.properties local.properties: - @echo "Please specify path of ANDROID NDK"; \ - echo "e.g. $$HOME/Android/ndk-r14b/"; \ - read ANDROID_NDK ; \ - if [ ! -d $$ANDROID_NDK ] ; then \ - echo "$$ANDROID_NDK is not a valid folder"; \ - exit 1; \ - fi; \ - echo "ndk.dir = $$ANDROID_NDK" > local.properties; \ - echo "Please specify path of ANDROID SDK"; \ - echo "e.g. $$HOME/Android/sdk/"; \ - read SDKFLDR ; \ - if [ ! -d $$SDKFLDR ] ; then \ - echo "$$SDKFLDR is not a valid folder"; \ - exit 1; \ - fi; \ + @echo "Please specify path of ANDROID NDK"; \ + echo "e.g. $$HOME/Android/ndk-r14b/"; \ + read ANDROID_NDK ; \ + if [ ! -d $$ANDROID_NDK ] ; then \ + echo "$$ANDROID_NDK is not a valid folder"; \ + exit 1; \ + fi; \ + echo "ndk.dir = $$ANDROID_NDK" > local.properties; \ + echo "Please specify path of ANDROID SDK"; \ + echo "e.g. $$HOME/Android/sdk/"; \ + read SDKFLDR ; \ + if [ ! -d $$SDKFLDR ] ; then \ + echo "$$SDKFLDR is not a valid folder"; \ + exit 1; \ + fi; \ echo "sdk.dir = $$SDKFLDR" >> local.properties; $(OPENAL_TIMESTAMP) : openal_download @LAST_MODIF=$$(find ${OPENAL_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${OPENAL_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${OPENAL_TIMESTAMP}; \ fi openal_download : - @if [ ! -d ${OPENAL_DIR} ] ; then \ - echo "openal sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps ; \ - wget ${OPENAL_URL} || exit 1; \ - unzip openal-soft-${OPENAL_VERSION}.zip || exit 1; \ - rm openal-soft-${OPENAL_VERSION}.zip || exit 1; \ - mv openal-soft-openal-soft-${OPENAL_VERSION} openal-soft || exit 1; \ - cd ${OPENAL_DIR}; \ - sed '/CMAKE_FIND_ROOT_PATH / s/^/#/' -i XCompile-Android.txt; \ - sed '/CMAKE_C_COMPILER/ s/-gcc"/-clang"/' -i XCompile-Android.txt; \ + @if [ ! -d ${OPENAL_DIR} ] ; then \ + echo "openal sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps ; \ + wget ${OPENAL_URL} || exit 1; \ + unzip openal-soft-${OPENAL_VERSION}.zip || exit 1; \ + rm openal-soft-${OPENAL_VERSION}.zip || exit 1; \ + mv openal-soft-openal-soft-${OPENAL_VERSION} openal-soft || exit 1; \ + cd ${OPENAL_DIR}; \ + sed '/CMAKE_FIND_ROOT_PATH / s/^/#/' -i XCompile-Android.txt; \ + sed '/CMAKE_C_COMPILER/ s/-gcc"/-clang"/' -i XCompile-Android.txt; \ fi openal : $(OPENAL_LIB) $(OPENAL_LIB): $(OPENAL_TIMESTAMP) +@REFRESH=0; \ - if [ ! -e ${OPENAL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${OPENAL_TIMESTAMP} -nt ${OPENAL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - echo "changed timestamp for openal detected building..."; \ - cd ${OPENAL_DIR}; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-openal; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ - cmake . \ - -DCMAKE_TOOLCHAIN_FILE=XCompile-Android.txt -DLIBTYPE=STATIC \ - -DCMAKE_C_FLAGS="${TARGET_CFLAGS_ADDON} -fno-lto" \ - -DHOST=${CROSS_PREFIX} -DCMAKE_FIND_ROOT_PATH=$${TOOLCHAIN} \ - -DALSOFT_NO_CONFIG_UTIL=TRUE || exit 1; \ - $(MAKE) || exit 1; \ - touch ${OPENAL_TIMESTAMP}; \ - touch ${OPENAL_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for openal"; \ + if [ ! -e ${OPENAL_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${OPENAL_TIMESTAMP} -nt ${OPENAL_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + echo "changed timestamp for openal detected building..."; \ + cd ${OPENAL_DIR}; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-openal; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + cmake . \ + -DCMAKE_TOOLCHAIN_FILE=XCompile-Android.txt -DLIBTYPE=STATIC \ + -DCMAKE_C_FLAGS="${TARGET_CFLAGS_ADDON} -fno-lto" \ + -DHOST=${CROSS_PREFIX} -DCMAKE_FIND_ROOT_PATH=$${TOOLCHAIN} \ + -DALSOFT_NO_CONFIG_UTIL=TRUE || exit 1; \ + $(MAKE) || exit 1; \ + touch ${OPENAL_TIMESTAMP}; \ + touch ${OPENAL_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ + else \ + echo "nothing to be done for openal"; \ fi clean_openal : @@ -208,38 +208,38 @@ clean_openal : $(VORBIS_TIMESTAMP) : vorbis_download @LAST_MODIF=$$(find ${VORBIS_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${VORBIS_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${VORBIS_TIMESTAMP}; \ fi vorbis_download : - @if [ ! -d ${VORBIS_DIR} ] ; then \ - echo "vorbis sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps ; \ - git clone ${VORBIS_URL_GIT} || exit 1; \ + @if [ ! -d ${VORBIS_DIR} ] ; then \ + echo "vorbis sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps ; \ + git clone ${VORBIS_URL_GIT} || exit 1; \ fi vorbis : $(VORBIS_LIB) $(VORBIS_LIB): $(VORBIS_TIMESTAMP) +@REFRESH=0; \ - if [ ! -e ${VORBIS_TIMESTAMP_INT} ] ; then \ - echo "${VORBIS_TIMESTAMP_INT} doesn't exist"; \ - REFRESH=1; \ - fi; \ - if [ ${VORBIS_TIMESTAMP} -nt ${VORBIS_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - echo "changed timestamp for vorbis detected building..."; \ - cd ${VORBIS_DIR}; \ - ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} TARGET_ABI=${TARGET_ABI} \ - NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Deps.mk || exit 1; \ - touch ${VORBIS_TIMESTAMP}; \ - touch ${VORBIS_TIMESTAMP_INT}; \ - else \ - echo "nothing to be done for libvorbis"; \ + if [ ! -e ${VORBIS_TIMESTAMP_INT} ] ; then \ + echo "${VORBIS_TIMESTAMP_INT} doesn't exist"; \ + REFRESH=1; \ + fi; \ + if [ ${VORBIS_TIMESTAMP} -nt ${VORBIS_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + echo "changed timestamp for vorbis detected building..."; \ + cd ${VORBIS_DIR}; \ + ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} TARGET_ABI=${TARGET_ABI} \ + NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Deps.mk || exit 1; \ + touch ${VORBIS_TIMESTAMP}; \ + touch ${VORBIS_TIMESTAMP_INT}; \ + else \ + echo "nothing to be done for libvorbis"; \ fi clean_vorbis : @@ -247,51 +247,51 @@ clean_vorbis : $(LEVELDB_TIMESTAMP) : leveldb_download @LAST_MODIF=$$(find ${LEVELDB_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${LEVELDB_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${LEVELDB_TIMESTAMP}; \ fi leveldb_download : - @if [ ! -d ${LEVELDB_DIR} ] ; then \ - echo "leveldb sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps ; \ - wget ${LEVELDB_URL} || exit 1; \ - unzip v${LEVELDB_VERSION}.zip || exit 1; \ - rm v${LEVELDB_VERSION}.zip || exit 1; \ - mv leveldb-${LEVELDB_VERSION} leveldb || exit 1; \ + @if [ ! -d ${LEVELDB_DIR} ] ; then \ + echo "leveldb sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps ; \ + wget ${LEVELDB_URL} || exit 1; \ + unzip v${LEVELDB_VERSION}.zip || exit 1; \ + rm v${LEVELDB_VERSION}.zip || exit 1; \ + mv leveldb-${LEVELDB_VERSION} leveldb || exit 1; \ fi leveldb : $(LEVELDB_LIB) $(LEVELDB_LIB): $(LEVELDB_TIMESTAMP) - @REFRESH=0; \ - if [ ! -e ${LEVELDB_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${LEVELDB_TIMESTAMP} -nt ${LEVELDB_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - echo "changed timestamp for leveldb detected building..."; \ - cd deps/leveldb; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-leveldb; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ - export CC=${CROSS_PREFIX}-gcc; \ - export CXX=${CROSS_PREFIX}-g++; \ - export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ - export CXXFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ - export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ - export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON} -fno-lto"; \ - $(MAKE) out-static/libleveldb.a || exit 1; \ - touch ${LEVELDB_TIMESTAMP}; \ - touch ${LEVELDB_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for leveldb"; \ + @REFRESH=0; \ + if [ ! -e ${LEVELDB_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${LEVELDB_TIMESTAMP} -nt ${LEVELDB_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + echo "changed timestamp for leveldb detected building..."; \ + cd deps/leveldb; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-leveldb; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + export CC=${CROSS_PREFIX}-gcc; \ + export CXX=${CROSS_PREFIX}-g++; \ + export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ + export CXXFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ + export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ + export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON} -fno-lto"; \ + $(MAKE) out-static/libleveldb.a || exit 1; \ + touch ${LEVELDB_TIMESTAMP}; \ + touch ${LEVELDB_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ + else \ + echo "nothing to be done for leveldb"; \ fi clean_leveldb : @@ -299,91 +299,91 @@ clean_leveldb : $(FREETYPE_TIMESTAMP) : freetype_download @LAST_MODIF=$$(find ${FREETYPE_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${FREETYPE_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${FREETYPE_TIMESTAMP}; \ fi freetype_download : - @if [ ! -d ${FREETYPE_DIR} ] ; then \ - echo "freetype sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd deps; \ - wget ${FREETYPE_URL_HTTP} || exit 1; \ - tar -xjf freetype-${FREETYPE_VERSION}.tar.bz2 || exit 1; \ - rm freetype-${FREETYPE_VERSION}.tar.bz2; \ - mv freetype-${FREETYPE_VERSION} freetype; \ + @if [ ! -d ${FREETYPE_DIR} ] ; then \ + echo "freetype sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd deps; \ + wget ${FREETYPE_URL_HTTP} || exit 1; \ + tar -xjf freetype-${FREETYPE_VERSION}.tar.bz2 || exit 1; \ + rm freetype-${FREETYPE_VERSION}.tar.bz2; \ + mv freetype-${FREETYPE_VERSION} freetype; \ fi freetype : $(FREETYPE_LIB) $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP) +@REFRESH=0; \ - if [ ! -e ${FREETYPE_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ! -e ${FREETYPE_LIB} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${FREETYPE_TIMESTAMP} -nt ${FREETYPE_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - mkdir -p ${FREETYPE_DIR}; \ - export PATH=$$PATH:${ANDROID_NDK}; \ - echo "changed timestamp for freetype detected building..."; \ - cd deps/freetype; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-freetype; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ - export CXX=${CROSS_PREFIX}-g++; \ - export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ - export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ - export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON} -fno-lto"; \ - export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ + if [ ! -e ${FREETYPE_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ! -e ${FREETYPE_LIB} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${FREETYPE_TIMESTAMP} -nt ${FREETYPE_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + mkdir -p ${FREETYPE_DIR}; \ + export PATH=$$PATH:${ANDROID_NDK}; \ + echo "changed timestamp for freetype detected building..."; \ + cd deps/freetype; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-freetype; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + export CXX=${CROSS_PREFIX}-g++; \ + export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ + export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ + export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON} -fno-lto"; \ + export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ CC=${CROSS_PREFIX}-gcc ./configure --enable-static --disable-shared --host=${TARGET_HOST} \ - --prefix=${TOOLCHAIN} --with-png=no --with-harfbuzz=no || exit 1; \ + --prefix=${TOOLCHAIN} --with-png=no --with-harfbuzz=no || exit 1; \ CC=${CROSS_PREFIX}-gcc ANDROID_DEV=/tmp/ndk-${TARGET_HOST}-freetype $(MAKE) || exit 1; \ - touch ${FREETYPE_TIMESTAMP}; \ - touch ${FREETYPE_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for freetype"; \ + touch ${FREETYPE_TIMESTAMP}; \ + touch ${FREETYPE_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ + else \ + echo "nothing to be done for freetype"; \ fi clean_freetype : $(RM) -rf ${FREETYPE_DIR} iconv_download : - @if [ ! -d ${ICONV_DIR} ] ; then \ - echo "iconv sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps; \ - wget ${ICONV_URL_HTTP} || exit 1; \ - tar -xzf libiconv-${ICONV_VERSION}.tar.gz || exit 1; \ - rm libiconv-${ICONV_VERSION}.tar.gz; \ - mv libiconv-${ICONV_VERSION} libiconv; \ - cd libiconv; \ - patch -p1 < ${ANDR_ROOT}/patches/libiconv_android.patch; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-iconv; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - ./configure || exit 1; \ + @if [ ! -d ${ICONV_DIR} ] ; then \ + echo "iconv sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps; \ + wget ${ICONV_URL_HTTP} || exit 1; \ + tar -xzf libiconv-${ICONV_VERSION}.tar.gz || exit 1; \ + rm libiconv-${ICONV_VERSION}.tar.gz; \ + mv libiconv-${ICONV_VERSION} libiconv; \ + cd libiconv; \ + patch -p1 < ${ANDR_ROOT}/patches/libiconv_android.patch; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-iconv; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + ./configure || exit 1; \ fi clean_iconv : $(RM) -rf ${ICONV_DIR} intl_download : - @if [ ! -d ${INTL_DIR} ] ; then \ - echo "libintl sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps; \ - git clone ${INTL_URL_GIT} libintl || exit 1; \ + @if [ ! -d ${INTL_DIR} ] ; then \ + echo "libintl sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps; \ + git clone ${INTL_URL_GIT} libintl || exit 1; \ fi clean_intl : @@ -395,54 +395,54 @@ clean_intl : # -Vivante Corporation GC1000 core (e.g. Galaxy Tab 3) irrlicht_download : - @if [ ! -d "deps/irrlicht" ] ; then \ - echo "irrlicht sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd deps; \ - wget ${IRRLICHT_URL_HTTP} || exit 1; \ - unzip ${IRRLICHT_COMMIT}.zip || exit 1; \ - rm ${IRRLICHT_COMMIT}.zip; \ - mv irrlicht-${IRRLICHT_COMMIT} irrlicht; \ - cd irrlicht; \ - mkdir -p lib/Android; \ - patch -p1 < ${ANDR_ROOT}/patches/irrlicht-touchcount.patch || exit 1;\ - patch -p1 < ${ANDR_ROOT}/patches/irrlicht-back_button.patch || exit 1;\ - patch -p1 < ${ANDR_ROOT}/patches/irrlicht-texturehack.patch || exit 1;\ - patch -p1 < ${ANDR_ROOT}/patches/irrlicht-optimization.patch || exit 1;\ - patch -p1 < ${ANDR_ROOT}/patches/irrlicht-native_activity.patch || exit 1; \ + @if [ ! -d "deps/irrlicht" ] ; then \ + echo "irrlicht sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd deps; \ + wget ${IRRLICHT_URL_HTTP} || exit 1; \ + unzip ${IRRLICHT_COMMIT}.zip || exit 1; \ + rm ${IRRLICHT_COMMIT}.zip; \ + mv irrlicht-${IRRLICHT_COMMIT} irrlicht; \ + cd irrlicht; \ + mkdir -p lib/Android; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-touchcount.patch || exit 1; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-back_button.patch || exit 1; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-texturehack.patch || exit 1; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-optimization.patch || exit 1; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-native_activity.patch || exit 1; \ fi $(IRRLICHT_TIMESTAMP) : irrlicht_download @LAST_MODIF=$$(find ${IRRLICHT_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${IRRLICHT_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${IRRLICHT_TIMESTAMP}; \ fi irrlicht : $(IRRLICHT_LIB) $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB) - +@REFRESH=0; \ - if [ ! -e ${IRRLICHT_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ! -e ${IRRLICHT_LIB} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${IRRLICHT_TIMESTAMP} -nt ${IRRLICHT_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - mkdir -p ${IRRLICHT_DIR}; \ - echo "changed timestamp for irrlicht detected building..."; \ - cd deps/irrlicht/source/Irrlicht/Android; \ - export APP_PLATFORM=${APP_PLATFORM}; \ - export TARGET_ABI=${TARGET_ABI}; \ - ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ - NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Irrlicht.mk || exit 1; \ - touch ${IRRLICHT_TIMESTAMP}; \ - touch ${IRRLICHT_TIMESTAMP_INT}; \ - else \ - echo "nothing to be done for irrlicht"; \ + +@REFRESH=0; \ + if [ ! -e ${IRRLICHT_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ! -e ${IRRLICHT_LIB} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${IRRLICHT_TIMESTAMP} -nt ${IRRLICHT_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + mkdir -p ${IRRLICHT_DIR}; \ + echo "changed timestamp for irrlicht detected building..."; \ + cd deps/irrlicht/source/Irrlicht/Android; \ + export APP_PLATFORM=${APP_PLATFORM}; \ + export TARGET_ABI=${TARGET_ABI}; \ + ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ + NDK_APPLICATION_MK=${ANDR_ROOT}/jni/Irrlicht.mk || exit 1; \ + touch ${IRRLICHT_TIMESTAMP}; \ + touch ${IRRLICHT_TIMESTAMP_INT}; \ + else \ + echo "nothing to be done for irrlicht"; \ fi clean_irrlicht : @@ -450,115 +450,115 @@ clean_irrlicht : $(CURL_TIMESTAMP) : curl_download @LAST_MODIF=$$(find ${CURL_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${CURL_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${CURL_TIMESTAMP}; \ fi curl_download : - @if [ ! -d "deps/curl" ] ; then \ - echo "curl sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd deps; \ - wget ${CURL_URL_HTTP} || exit 1; \ - tar -xjf curl-${CURL_VERSION}.tar.bz2 || exit 1; \ - rm curl-${CURL_VERSION}.tar.bz2; \ - mv curl-${CURL_VERSION} curl; \ + @if [ ! -d "deps/curl" ] ; then \ + echo "curl sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd deps; \ + wget ${CURL_URL_HTTP} || exit 1; \ + tar -xjf curl-${CURL_VERSION}.tar.bz2 || exit 1; \ + rm curl-${CURL_VERSION}.tar.bz2; \ + mv curl-${CURL_VERSION} curl; \ fi curl : $(CURL_LIB) $(CURL_LIB): $(CURL_TIMESTAMP) - @REFRESH=0; \ - if [ ! -e ${CURL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ! -e ${CURL_LIB} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${CURL_TIMESTAMP} -nt ${CURL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - mkdir -p ${CURL_DIR}; \ - echo "changed timestamp for curl detected building..."; \ - cd deps/curl; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-curl; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ - export CC=${CROSS_PREFIX}-gcc; \ - export CXX=${CROSS_PREFIX}-g++; \ - export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ - export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ - export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON} -fno-lto"; \ - export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ - ./configure --host=${TARGET_HOST} --enable-static --disable-shared \ - --disable-debug --disable-dependency-tracking -disable-ftp \ - --disable-ldap --disable-ldaps --disable-rtsp --disable-proxy --disable-dict \ - --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp \ + @REFRESH=0; \ + if [ ! -e ${CURL_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ! -e ${CURL_LIB} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${CURL_TIMESTAMP} -nt ${CURL_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + mkdir -p ${CURL_DIR}; \ + echo "changed timestamp for curl detected building..."; \ + cd deps/curl; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-curl; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + export CC=${CROSS_PREFIX}-gcc; \ + export CXX=${CROSS_PREFIX}-g++; \ + export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ + export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON} -fno-lto"; \ + export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON} -fno-lto"; \ + export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ + ./configure --host=${TARGET_HOST} --enable-static --disable-shared \ + --disable-debug --disable-dependency-tracking -disable-ftp \ + --disable-ldap --disable-ldaps --disable-rtsp --disable-proxy --disable-dict \ + --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp \ --disable-gopher --disable-sspi --disable-manual --disable-zlib --without-zlib; \ - $(MAKE) -s || exit 1; \ - touch ${CURL_TIMESTAMP}; \ - touch ${CURL_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for curl"; \ + $(MAKE) -s || exit 1; \ + touch ${CURL_TIMESTAMP}; \ + touch ${CURL_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ + else \ + echo "nothing to be done for curl"; \ fi clean_curl : $(RM) -R ${CURL_DIR} sqlite3_download : - @if [ ! -d ${SQLITE3_DIR} ] ; then \ - echo "sqlite3 sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps; \ - rm -R sqlite; \ - wget ${SQLITE3_URL}; \ - unzip sqlite-amalgamation-$(SQLITE3_VERSION).zip || exit 1; \ - rm sqlite-amalgamation-$(SQLITE3_VERSION).zip; \ - mv sqlite-amalgamation-$(SQLITE3_VERSION) sqlite; \ + @if [ ! -d ${SQLITE3_DIR} ] ; then \ + echo "sqlite3 sources missing, downloading..."; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps; \ + rm -R sqlite; \ + wget ${SQLITE3_URL}; \ + unzip sqlite-amalgamation-$(SQLITE3_VERSION).zip || exit 1; \ + rm sqlite-amalgamation-$(SQLITE3_VERSION).zip; \ + mv sqlite-amalgamation-$(SQLITE3_VERSION) sqlite; \ fi clean_sqlite3 : $(RM) -rf ${SQLITE3_DIR} $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB) - @mkdir -p ${ANDR_ROOT}/deps; \ - for DIRNAME in {builtin,client,doc,fonts,games,po,textures}; do \ + @mkdir -p ${ANDR_ROOT}/deps; \ + for DIRNAME in {builtin,client,doc,fonts,games,po,textures}; do \ LAST_MODIF=$$(find ${PROJ_ROOT}/$$DIRNAME -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ]; then \ - touch ${PROJ_ROOT}/$$DIRNAME/timestamp; \ - touch ${ASSETS_TIMESTAMP}; \ - echo $$DIRNAME changed $$LAST_MODIF; \ - fi; \ - done; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ]; then \ + touch ${PROJ_ROOT}/$$DIRNAME/timestamp; \ + touch ${ASSETS_TIMESTAMP}; \ + echo $$DIRNAME changed $$LAST_MODIF; \ + fi; \ + done; \ LAST_MODIF=$$(find ${IRRLICHT_DIR}/media -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${IRRLICHT_DIR}/media/timestamp; \ - touch ${ASSETS_TIMESTAMP}; \ - fi; \ - if [ ${PROJ_ROOT}/multicraft.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \ - echo "conf changed"; \ - touch ${ASSETS_TIMESTAMP}; \ - fi; \ - if [ ${PROJ_ROOT}/README.txt -nt ${ASSETS_TIMESTAMP} ] ; then \ - touch ${ASSETS_TIMESTAMP}; \ - fi; \ - if [ ! -e $(ASSETS_TIMESTAMP) ] ; then \ - touch $(ASSETS_TIMESTAMP); \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${IRRLICHT_DIR}/media/timestamp; \ + touch ${ASSETS_TIMESTAMP}; \ + fi; \ + if [ ${PROJ_ROOT}/multicraft.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \ + echo "conf changed"; \ + touch ${ASSETS_TIMESTAMP}; \ + fi; \ + if [ ${PROJ_ROOT}/README.txt -nt ${ASSETS_TIMESTAMP} ] ; then \ + touch ${ASSETS_TIMESTAMP}; \ + fi; \ + if [ ! -e $(ASSETS_TIMESTAMP) ] ; then \ + touch $(ASSETS_TIMESTAMP); \ fi $(LUAJIT_TIMESTAMP) : luajit_download @LAST_MODIF=$$(find ${LUAJIT_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${LUAJIT_TIMESTAMP}; \ + if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ + touch ${LUAJIT_TIMESTAMP}; \ fi luajit_download : - @if [ ! -d ${LUAJIT_DIR} ] ; then \ + @if [ ! -d ${LUAJIT_DIR} ] ; then \ echo "luajit sources missing, downloading..."; \ mkdir -p ${ANDR_ROOT}/deps; \ cd ${ANDR_ROOT}/deps; \ @@ -568,115 +568,113 @@ luajit_download : luajit : $(LUAJIT_LIB) $(LUAJIT_LIB): $(LUAJIT_TIMESTAMP) - @REFRESH=0; \ - if [ ! -e ${LUAJIT_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${LUAJIT_TIMESTAMP} -nt ${LUAJIT_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - mkdir -p ${LUAJIT_DIR}; \ - export PATH=$$PATH:${ANDROID_NDK}; \ - echo "changed timestamp for luajit detected building..."; \ - cd ${LUAJIT_DIR}; \ - export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-luajit; \ - ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ - --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ - --platform=${APP_PLATFORM} \ - --install-dir=$${TOOLCHAIN}; \ - export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ - export TARGET_FLAGS="${TARGET_CFLAGS_ADDON} -fno-lto"; \ - export TARGET_LDFLAGS="${TARGET_LDFLAGS_ADDON}"; \ - $(MAKE) CROSS=${CROSS_PREFIX}- TARGET_CC=${CROSS_PREFIX}-clang \ - XCFLAGS="-DLUAJIT_DISABLE_FFI" HOST_CC="gcc -m32" BUILDMODE=static; \ - touch ${LUAJIT_TIMESTAMP}; \ - touch ${LUAJIT_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for luajit"; \ + @REFRESH=0; \ + if [ ! -e ${LUAJIT_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${LUAJIT_TIMESTAMP} -nt ${LUAJIT_TIMESTAMP_INT} ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + mkdir -p ${LUAJIT_DIR}; \ + export PATH=$$PATH:${ANDROID_NDK}; \ + echo "changed timestamp for luajit detected building..."; \ + cd ${LUAJIT_DIR}; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-luajit; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ + --platform=${APP_PLATFORM} \ + --install-dir=$${TOOLCHAIN}; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + export TARGET_FLAGS="${TARGET_CFLAGS_ADDON} -fno-lto"; \ + export TARGET_LDFLAGS="${TARGET_LDFLAGS_ADDON}"; \ + $(MAKE) CROSS=${CROSS_PREFIX}- TARGET_CC=${CROSS_PREFIX}-clang \ + XCFLAGS="-DLUAJIT_DISABLE_FFI" HOST_CC="gcc -m32" BUILDMODE=static; \ + touch ${LUAJIT_TIMESTAMP}; \ + touch ${LUAJIT_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ + else \ + echo "nothing to be done for luajit"; \ fi clean_luajit: $(RM) -R deps/luajit assets : $(ASSETS_TIMESTAMP) - @REFRESH=0; \ - if [ ! -e ${ASSETS_TIMESTAMP}.old ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${ASSETS_TIMESTAMP} -nt ${ASSETS_TIMESTAMP}.old ] ; then \ - REFRESH=1; \ - fi; \ - if [ ! -e ${APP_ROOT}/assets ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - echo "assets changed, refreshing..."; \ - $(MAKE) clean_assets; \ - mkdir -p ${APP_ROOT}/assets/MultiCraft; \ - cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/MultiCraft; \ - mkdir ${APP_ROOT}/assets/MultiCraft/fonts; \ + @REFRESH=0; \ + if [ ! -e ${ASSETS_TIMESTAMP}.old ] ; then \ + REFRESH=1; \ + fi; \ + if [ ${ASSETS_TIMESTAMP} -nt ${ASSETS_TIMESTAMP}.old ] ; then \ + REFRESH=1; \ + fi; \ + if [ ! -e ${APP_ROOT}/assets ] ; then \ + REFRESH=1; \ + fi; \ + if [ $$REFRESH -ne 0 ] ; then \ + echo "assets changed, refreshing..."; \ + $(MAKE) clean_assets; \ + mkdir -p ${APP_ROOT}/assets/MultiCraft; \ + cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/MultiCraft; \ + mkdir ${APP_ROOT}/assets/MultiCraft/fonts; \ cp -r ${PROJ_ROOT}/fonts/retrovillenc.ttf ${APP_ROOT}/assets/MultiCraft/fonts/; \ - cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/MultiCraft; \ - mkdir -p ${APP_ROOT}/assets/MultiCraft/locale; \ - pushd ${PROJ_ROOT}/po; \ - for lang in *; do \ - [ $${#lang} -ne 2 ] && continue; \ - MOPATH=${APP_ROOT}/assets/MultiCraft/locale/$$lang/LC_MESSAGES; \ - mkdir -p $$MOPATH; \ - pushd $$lang; \ - for fn in *.po; do \ - newfn=$${fn/.po/.mo}; \ - msgfmt -o $$MOPATH/$$newfn $$fn; \ - done; \ - popd; \ - done; \ - popd; \ - cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/MultiCraft; \ - cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/MultiCraft; \ - cd ${APP_ROOT}/assets || exit 1; \ - find . -name "timestamp" -exec rm {} \; ; \ - find . -name "*.blend" -exec rm {} \; ; \ - find . -name "*~" -exec rm {} \; ; \ - find . -type d -path "*.git" -exec rm -rf {} \; ; \ - find . -type d -path "*.svn" -exec rm -rf {} \; ; \ - find . -type f -path "*.gitignore" -exec rm -rf {} \; ; \ - cd MultiCraft; \ + cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/MultiCraft; \ + mkdir -p ${APP_ROOT}/assets/MultiCraft/locale; \ + pushd ${PROJ_ROOT}/po; \ + for lang in *; do \ + [ $${#lang} -ne 2 ] && continue; \ + MOPATH=${APP_ROOT}/assets/MultiCraft/locale/$$lang/LC_MESSAGES; \ + mkdir -p $$MOPATH; \ + pushd $$lang; \ + for fn in *.po; do \ + newfn=$${fn/.po/.mo}; \ + msgfmt -o $$MOPATH/$$newfn $$fn; \ + done; \ + popd; \ + done; \ + popd; \ + cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/MultiCraft; \ + cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/MultiCraft; \ + cd ${APP_ROOT}/assets || exit 1; \ + find . -name "timestamp" -exec rm {} \; ; \ + find . -name "*.blend" -exec rm {} \; ; \ + find . -name "*~" -exec rm {} \; ; \ + find . -type d -path "*.git" -exec rm -rf {} \; ; \ + find . -type d -path "*.svn" -exec rm -rf {} \; ; \ + find . -type f -path "*.gitignore" -exec rm -rf {} \; ; \ + cd MultiCraft; \ ls -R | grep ":$$" | sed -e 's/:$$//' -e 's/\.//' -e 's/^\///' > ../index.txt; \ - find -L . | cut -c 3- > ../filelist.txt; \ - echo "Creating worlds.zip"; \ - zip -r ../worlds.zip worlds; \ - echo "Creating games.zip"; \ - zip -r ../games.zip games; \ - rm -r worlds games; \ - echo "Creating Files.zip"; \ - zip -r ../Files.zip *; \ - cp ${ASSETS_TIMESTAMP} ${ASSETS_TIMESTAMP}.old; \ - else \ - echo "nothing to be done for assets"; \ + find -L . | cut -c 3- > ../filelist.txt; \ + echo "Creating worlds.zip"; \ + zip -r ../worlds.zip worlds; \ + echo "Creating games.zip"; \ + zip -r ../games.zip games; \ + rm -r worlds games; \ + echo "Creating Files.zip"; \ + zip -r ../Files.zip *; \ + cp ${ASSETS_TIMESTAMP} ${ASSETS_TIMESTAMP}.old; \ + else \ + echo "nothing to be done for assets"; \ fi clean_assets : @$(RM) -r ${APP_ROOT}/assets -apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB) \ +apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB) \ $(OPENAL_LIB) $(VORBIS_LIB) prep_srcdir $(ANDR_ROOT)/jni/src/android_version.h \ $(ANDR_ROOT)/jni/src/android_version_githash.h sqlite3_download intl_download iconv_download assets - +@${ANDROID_NDK}/ndk-build \ - TARGET_LIBDIR=${TARGET_LIBDIR} \ - APP_PLATFORM=${APP_PLATFORM} TARGET_ABI=${TARGET_ABI} || exit 1; \ - if [ ! -e ${APP_ROOT}/jniLibs ]; then \ - ln -s ${ANDR_ROOT}/libs ${APP_ROOT}/jniLibs || exit 1; \ - fi; \ - export VERSION_STR="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" &&\ - export BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \ -# gradle assemble$$BUILD_TYPE_C && \ - echo "APK stored at: build/outputs/apk/MultiCraft-$$BUILD_TYPE.apk" && \ + +@${ANDROID_NDK}/ndk-build \ + TARGET_LIBDIR=${TARGET_LIBDIR} \ + APP_PLATFORM=${APP_PLATFORM} TARGET_ABI=${TARGET_ABI} || exit 1; \ + if [ ! -e ${APP_ROOT}/jniLibs ]; then \ + ln -s ${ANDR_ROOT}/libs ${APP_ROOT}/jniLibs || exit 1; \ + fi; \ + export VERSION_STR="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" && \ + export BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \ +# gradle assemble$$BUILD_TYPE_C && \ + echo "APK stored at: build/outputs/apk/MultiCraft-$$BUILD_TYPE.apk" && \ echo "You can install it with \`make install_$$BUILD_TYPE\`" -# These Intentionally doesn't depend on their respective build steps, -# because it takes a while to verify that everything's up-to-date. install_debug: ${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-debug.apk @@ -684,62 +682,62 @@ install_release: ${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-release.apk prep_srcdir : - @if [ ! -e ${ANDR_ROOT}/jni/src ]; then \ - ln -s ${PROJ_ROOT}/src ${ANDR_ROOT}/jni/src; \ - fi; \ - if [ ! -e ${ANDR_ROOT}/jni/lib ]; then \ - ln -s ${PROJ_ROOT}/lib ${ANDR_ROOT}/jni/lib; \ + @if [ ! -e ${ANDR_ROOT}/jni/src ]; then \ + ln -s ${PROJ_ROOT}/src ${ANDR_ROOT}/jni/src; \ + fi; \ + if [ ! -e ${ANDR_ROOT}/jni/lib ]; then \ + ln -s ${PROJ_ROOT}/lib ${ANDR_ROOT}/jni/lib; \ fi clean_apk : # gradle clean clean_all : - @$(MAKE) clean_apk; \ - $(MAKE) clean_assets; \ - sleep 1; \ + @$(MAKE) clean_apk; \ + $(MAKE) clean_assets; \ + sleep 1; \ $(RM) -r gen libs obj deps bin Debug and_env jni/src clean_src : $(RM) -r gen libs obj bin Debug and_env jni/src $(ANDR_ROOT)/jni/src/android_version_githash.h : prep_srcdir - @export VERSION_FILE=${ANDR_ROOT}/jni/src/android_version_githash.h; \ - export VERSION_FILE_NEW=$${VERSION_FILE}.new; \ - { \ - echo "#ifndef ANDROID_MT_VERSION_GITHASH_H"; \ - echo "#define ANDROID_MT_VERSION_GITHASH_H"; \ - export GITHASH=$$(git rev-parse --short=8 HEAD); \ - export VERSION_STR="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}";\ - echo "#define VERSION_GITHASH \"$$VERSION_STR-$$GITHASH-Android\""; \ - echo "#endif"; \ - } > "$${VERSION_FILE_NEW}"; \ - if ! cmp -s $${VERSION_FILE} $${VERSION_FILE_NEW}; then \ - echo "android_version_githash.h changed, updating..."; \ - mv "$${VERSION_FILE_NEW}" "$${VERSION_FILE}"; \ - else \ - rm "$${VERSION_FILE_NEW}"; \ + @export VERSION_FILE=${ANDR_ROOT}/jni/src/android_version_githash.h; \ + export VERSION_FILE_NEW=$${VERSION_FILE}.new; \ + { \ + echo "#ifndef ANDROID_MT_VERSION_GITHASH_H"; \ + echo "#define ANDROID_MT_VERSION_GITHASH_H"; \ + export GITHASH=$$(git rev-parse --short=8 HEAD); \ + export VERSION_STR="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"; \ + echo "#define VERSION_GITHASH \"$$VERSION_STR-$$GITHASH-Android\""; \ + echo "#endif"; \ + } > "$${VERSION_FILE_NEW}"; \ + if ! cmp -s $${VERSION_FILE} $${VERSION_FILE_NEW}; then \ + echo "android_version_githash.h changed, updating..."; \ + mv "$${VERSION_FILE_NEW}" "$${VERSION_FILE}"; \ + else \ + rm "$${VERSION_FILE_NEW}"; \ fi $(ANDR_ROOT)/jni/src/android_version.h : prep_srcdir - @export VERSION_FILE=${ANDR_ROOT}/jni/src/android_version.h; \ - export VERSION_FILE_NEW=$${VERSION_FILE}.new; \ - { \ - echo "#ifndef ANDROID_MT_VERSION_H"; \ - echo "#define ANDROID_MT_VERSION_H"; \ - echo "#define VERSION_MAJOR ${VERSION_MAJOR}"; \ - echo "#define VERSION_MINOR ${VERSION_MINOR}"; \ - echo "#define VERSION_PATCH ${VERSION_PATCH}"; \ - echo "#define VERSION_STRING STR(VERSION_MAJOR) \".\" STR(VERSION_MINOR)\ - \".\" STR(VERSION_PATCH)"; \ - echo "#endif"; \ - } > $${VERSION_FILE_NEW}; \ - if ! cmp -s $${VERSION_FILE} $${VERSION_FILE_NEW}; then \ - echo "android_version.h changed, updating..."; \ - mv "$${VERSION_FILE_NEW}" "$${VERSION_FILE}"; \ - else \ - rm "$${VERSION_FILE_NEW}"; \ + @export VERSION_FILE=${ANDR_ROOT}/jni/src/android_version.h; \ + export VERSION_FILE_NEW=$${VERSION_FILE}.new; \ + { \ + echo "#ifndef ANDROID_MT_VERSION_H"; \ + echo "#define ANDROID_MT_VERSION_H"; \ + echo "#define VERSION_MAJOR ${VERSION_MAJOR}"; \ + echo "#define VERSION_MINOR ${VERSION_MINOR}"; \ + echo "#define VERSION_PATCH ${VERSION_PATCH}"; \ + echo "#define VERSION_STRING STR(VERSION_MAJOR) \".\" STR(VERSION_MINOR) \ + \".\" STR(VERSION_PATCH)"; \ + echo "#endif"; \ + } > $${VERSION_FILE_NEW}; \ + if ! cmp -s $${VERSION_FILE} $${VERSION_FILE_NEW}; then \ + echo "android_version.h changed, updating..."; \ + mv "$${VERSION_FILE_NEW}" "$${VERSION_FILE}"; \ + else \ + rm "$${VERSION_FILE_NEW}"; \ fi clean : clean_apk clean_assets diff --git a/build/android/patches/irrlicht-optimization.patch b/build/android/patches/irrlicht-optimization.patch index e6401806f..b5ff39c8b 100644 --- a/build/android/patches/irrlicht-optimization.patch +++ b/build/android/patches/irrlicht-optimization.patch @@ -9,7 +9,7 @@ +LOCAL_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb +endif +ifeq ($(TARGET_ABI),x86) -+LOCAL_CFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops -fno-stack-protector ++LOCAL_CFLAGS += -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -funroll-loops +endif +LOCAL_CFLAGS += -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -flto +LOCAL_CXXFLAGS := $(LOCAL_CFLAGS) diff --git a/src/client/inputhandler.cpp b/src/client/inputhandler.cpp index 350921502..4701f6292 100644 --- a/src/client/inputhandler.cpp +++ b/src/client/inputhandler.cpp @@ -114,9 +114,11 @@ bool MyEventReceiver::OnEvent(const SEvent &event) LL_NONE, // ELL_NONE }; assert(event.LogEvent.Level < ARRLEN(irr_loglev_conv)); - g_logger.log(irr_loglev_conv[event.LogEvent.Level], - std::string("Irrlicht: ") + - (const char *)event.LogEvent.Text); + #if !defined(__ANDROID__) && !defined(__IOS__) + g_logger.log(irr_loglev_conv[event.LogEvent.Level], + std::string("Irrlicht: ") + + (const char *)event.LogEvent.Text); + #endif return true; } /* always return false in order to continue processing events */ diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 7a7e8bad4..3e36e0e2d 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -178,6 +178,7 @@ void set_default_settings(Settings *settings) settings->setDefault("ambient_occlusion_gamma", "2.2"); settings->setDefault("enable_shaders", "true"); settings->setDefault("enable_particles", "true"); + settings->setDefault("screen_dpi", "72"); settings->setDefault("enable_minimap", "true"); settings->setDefault("minimap_shape_round", "true"); @@ -263,8 +264,8 @@ void set_default_settings(Settings *settings) // Network settings->setDefault("enable_ipv6", "true"); settings->setDefault("ipv6_server", "false"); - settings->setDefault("workaround_window_size","5"); - settings->setDefault("max_packets_per_iteration","1024"); + settings->setDefault("workaround_window_size", "5"); + settings->setDefault("max_packets_per_iteration", "1024"); settings->setDefault("port", "30000"); settings->setDefault("strict_protocol_version_checking", "false"); settings->setDefault("player_transfer_distance", "0"); @@ -388,10 +389,11 @@ void set_default_settings(Settings *settings) settings->setDefault("abm_interval", "2.0"); settings->setDefault("cloud_radius", "6"); settings->setDefault("client_unload_unused_data_timeout", "60"); + settings->setDefault("curl_verify_cert", "false"); #endif #ifdef __ANDROID__ - settings->setDefault("viewing_range", "30"); + settings->setDefault("viewing_range", "35"); settings->setDefault("smooth_lighting", "false"); settings->setDefault("selectionbox_width", "6"); settings->setDefault("emergequeue_limit_diskonly", "8"); @@ -401,32 +403,27 @@ void set_default_settings(Settings *settings) settings->setDefault("mono_font_path", "/system/fonts/DroidSansMono.ttf"); settings->setDefault("fallback_font_path", "/system/fonts/DroidSans.ttf"); - - settings->setDefault("curl_verify_cert","false"); - - //For other devices - settings->setDefault("gui_scaling", "1.2"); - - // check for screen + + // check screen size float x_inches = ((double) porting::getDisplaySize().X / (160 * porting::getDisplayDensity())); - if (x_inches < 5) { - // all phones - settings->setDefault("hud_scaling", "0.6"); - settings->setDefault("mouse_sensitivity", "0.15"); - } - if (x_inches < 3.7) { + if (x_inches <= 3.7) { // small 4" phones settings->setDefault("hud_scaling", "0.5"); settings->setDefault("gui_scaling", "1.0"); - settings->setDefault("mouse_sensitivity", "0.2"); - } - if (x_inches > 5) { + settings->setDefault("mouse_sensitivity", "0.25"); + } else if (x_inches > 3.7 && x_inches < 5) { + // all phones + settings->setDefault("hud_scaling", "0.6"); + settings->setDefault("gui_scaling", "1.2"); + settings->setDefault("mouse_sensitivity", "0.15"); + } else if (x_inches >= 5) { // tablets settings->setDefault("hud_scaling", "0.85"); + settings->setDefault("gui_scaling", "1.2"); settings->setDefault("mouse_sensitivity", "0.2"); } - + // Auto-detect language on Android // FIXME: this code should be in init_gettext() ideally char lang[3] = {0}; @@ -434,8 +431,6 @@ void set_default_settings(Settings *settings) if (!lang[0]) errorstream << "Language auto-detection failed!" << std::endl; settings->setDefault("language", lang); -#else - settings->setDefault("screen_dpi", "72"); #endif #ifdef __IOS__ @@ -445,47 +440,44 @@ void set_default_settings(Settings *settings) settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "retrovillenc.ttf")); settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "retrovillenc.ttf")); - // For iPad =) + // iPad settings->setDefault("hud_scaling", "0.8"); settings->setDefault("gui_scaling", "1.1"); settings->setDefault("mouse_sensitivity", "0.2"); - // 3.5" (old iPhone's) + if ([SDVersion deviceSize] == Screen3Dot5inch) { - settings->setDefault("viewing_range", "30"); + // 3.5" (old iPhone's) + settings->setDefault("viewing_range", "25"); settings->setDefault("hud_scaling", "0.5"); settings->setDefault("gui_scaling", "1.0"); settings->setDefault("mouse_sensitivity", "0.2"); settings->setDefault("enable_3d_clouds", "false"); settings->setDefault("smooth_lighting", "false"); - }; + } else if ([SDVersion deviceSize] == Screen4inch) { // 4" (iPhone 5) - if ([SDVersion deviceSize] == Screen4inch) { settings->setDefault("hud_scaling", "0.5"); settings->setDefault("gui_scaling", "1.2"); settings->setDefault("mouse_sensitivity", "0.23"); settings->setDefault("enable_3d_clouds", "false"); settings->setDefault("smooth_lighting", "false"); - }; - // 4.7" (iPhone) - if ([SDVersion deviceSize] == Screen4Dot7inch) { + } else if ([SDVersion deviceSize] == Screen4Dot7inch) { + // 4.7" (iPhone) settings->setDefault("hud_scaling", "0.6"); settings->setDefault("gui_scaling", "1.2"); settings->setDefault("mouse_sensitivity", "0.25"); - }; - // 5.5" (iPhone Plus) - if ([SDVersion deviceSize] == Screen5Dot5inch) { + } else if ([SDVersion deviceSize] == Screen5Dot5inch) { + // 5.5" (iPhone Plus) settings->setDefault("hud_scaling", "0.7"); settings->setDefault("gui_scaling", "1.3"); settings->setDefault("mouse_sensitivity", "0.3"); - }; - // 5.8" (iPhone X) - if ([SDVersion deviceSize] == Screen5Dot8inch) { + } else if ([SDVersion deviceSize] == Screen5Dot8inch) { + // 5.8" (iPhone X) settings->setDefault("viewing_range", "75"); settings->setDefault("hud_scaling", "0.7"); settings->setDefault("gui_scaling", "1.3"); settings->setDefault("mouse_sensitivity", "0.3"); settings->setDefault("hud_move_upwards", "15"); - }; + } // Auto-detect language on iOS char lang[3] = {0}; diff --git a/src/game.cpp b/src/game.cpp index bb98ee140..62773284b 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -2795,7 +2795,10 @@ void Game::toggleFreeMove() void Game::toggleFreeMoveAlt() { + bool free_move = !g_settings->getBool("free_move"); + bool creative = !g_settings->getBool("creative_mode"); if (m_cache_doubletap_jump && runData.jump_timer < 0.15f) + if (!free_move || !creative) toggleFreeMove(); runData.reset_jump_timer = true;