diff --git a/build/android/Makefile b/build/android/Makefile index 99183a47d..bad7caca2 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -7,12 +7,12 @@ OS := $(shell uname) # build for build platform APP_PLATFORM = android-19 +COMPILER_VERSION = 4.9 ANDR_ROOT = $(shell pwd) PROJ_ROOT = $(shell realpath $(ANDR_ROOT)/../..) APP_ROOT = $(ANDR_ROOT)/src/main - VERSION_MAJOR := $(shell cat $(PROJ_ROOT)/CMakeLists.txt | \ grep ^set\(VERSION_MAJOR\ | sed 's/)/ /' | cut -f2 -d' ') VERSION_MINOR := $(shell cat $(PROJ_ROOT)/CMakeLists.txt | \ @@ -25,39 +25,19 @@ VERSION_PATCH := $(shell cat $(PROJ_ROOT)/CMakeLists.txt | \ ################################################################################ TARGET_HOST = arm-linux -TARGET_HOST2 = arm-linux TARGET_ABI = armeabi-v7a TARGET_LIBDIR = armeabi-v7a TARGET_TOOLCHAIN = arm-linux-androideabi TARGET_CFLAGS_ADDON = -mfpu=vfpv3-d16 -march=armv7-a -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch,--gc-sections -TARGET_ARCH = armv7 CROSS_PREFIX = arm-linux-androideabi- -COMPILER_VERSION = 4.9 - -################################################################################ -# toolchain config for ARMv8 -################################################################################ - -# TARGET_HOST = aarch64-linux -# TARGET_HOST2 = arm-linux -# TARGET_ABI = arm64-v8a -# TARGET_LIBDIR = arm64-v8a -# TARGET_TOOLCHAIN = aarch64-linux-android -# TARGET_CFLAGS_ADDON = -march=armv8-a -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -# TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -# TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch,--gc-sections -# TARGET_ARCH = arm64 -# CROSS_PREFIX = aarch64-linux-android- -# COMPILER_VERSION = 4.9 ################################################################################ # toolchain config for x86 ################################################################################ # TARGET_HOST = x86-linux -# TARGET_HOST2 = x86-linux # TARGET_ABI = x86 # TARGET_LIBDIR = x86 # TARGET_TOOLCHAIN = x86 @@ -66,20 +46,19 @@ COMPILER_VERSION = 4.9 # TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch,--gc-sections # TARGET_ARCH = x86 # CROSS_PREFIX = i686-linux-android- -# COMPILER_VERSION = 4.9 ################################################################################ ASSETS_TIMESTAMP = deps/assets_timestamp -OPENAL_URL = https://github.com/MoNTE48/openal-soft/releases/download/$(OPENAL_VER)/$(OPENAL_VER).zip -OPENAL_VER = openal-soft-1.17.2-dev +#OPENAL_URL = https://github.com/MoNTE48/openal-soft/releases/download/$(OPENAL_VER)/$(OPENAL_VER).zip +#OPENAL_VER = openal-soft-1.17.2-dev OPENAL_FOLDER = $(ANDR_ROOT)/deps/openal-soft OPENAL_DIR = $(ANDR_ROOT)/deps/openal-soft/android OPENAL_LIB = $(OPENAL_DIR)/libs/$(TARGET_ABI)/libopenal.so OPENAL_TIMESTAMP = $(OPENAL_DIR)/timestamp OPENAL_TIMESTAMP_INT = $(ANDR_ROOT)/deps/openal_timestamp -#OPENAL_URL_GIT = https://github.com/MoNTE48/openal-soft +OPENAL_URL_GIT = https://github.com/MoNTE48/openal-soft VORBIS_DIR = $(ANDR_ROOT)/deps/libvorbis-android VORBIS_LIB = $(VORBIS_DIR)/obj/local/$(TARGET_ABI)/libvorbis.a @@ -102,19 +81,19 @@ OPENSSL_TIMESTAMP = $(OPENSSL_DIR)/timestamp OPENSSL_TIMESTAMP_INT = $(ANDR_ROOT)/deps/openssl_timestamp OPENSSL_URL = https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -CURL_VERSION = 7.50.2 +CURL_VERSION = 7.50.3 CURL_DIR = $(ANDR_ROOT)/deps/curl CURL_LIB = $(CURL_DIR)/lib/.libs/libcurl.a CURL_TIMESTAMP = $(CURL_DIR)/timestamp CURL_TIMESTAMP_INT = $(ANDR_ROOT)/deps/curl_timestamp CURL_URL_HTTP = http://dl.uxnr.de/mirror/curl/curl-${CURL_VERSION}.tar.bz2 -MPIR_VERSION = 2.7.2 +# not used now MPIR_DIR = $(ANDR_ROOT)/deps/mpir MPIR_LIB = $(MPIR_DIR)/usr/local/lib/libmpir.a MPIR_TIMESTAMP = $(MPIR_DIR)/timestamp MPIR_TIMESTAMP_INT = $(ANDR_ROOT)/deps/mpir_timestamp -MPIR_URL_HTTP = http://mpir.org/mpir-$(MPIR_VERSION).tar.bz2 +MPIR_URL_GIT = https://github.com/wbhart/mpir FREETYPE_VERSION = 2.7 FREETYPE_DIR = $(ANDR_ROOT)/deps/freetype @@ -130,7 +109,7 @@ ICONV_TIMESTAMP = $(ICONV_DIR)/timestamp ICONV_TIMESTAMP_INT = $(ANDR_ROOT)/deps/iconv_timestamp ICONV_URL_HTTP = https://ftp.gnu.org/pub/gnu/libiconv/libiconv-$(ICONV_VERSION).tar.gz -SQLITE3_VERSION = 3140200 +SQLITE3_VERSION = 3150000 SQLITE3_DIR = $(ANDR_ROOT)/deps/sqlite SQLITE3_URL = https://www.sqlite.org/2016/sqlite-amalgamation-$(SQLITE3_VERSION).zip @@ -141,12 +120,6 @@ LUAJIT_TIMESTAMP = $(LUAJIT_DIR)/timestamp LUAJIT_TIMESTAMP_INT = $(ANDR_ROOT)/deps/luajit_timestamp LUAJIT_URL_GIT = https://github.com/LuaJIT/LuaJIT.git -#GNUINTL_DIR = $(ANDR_ROOT)/deps/gnuintl -#GNUINTL_LIB = $(LUAJIT_DIR)src/gnuintl.a -#GNUINTL_TIMESTAMP = $(GNUINTL_DIR)/timestamp -#GNUINTL_TIMESTAMP_INT = $(ANDR_ROOT)/deps/gnuintl_timestamp -#GNUINTL_URL_GIT = https://github.com/LuaJIT/LuaJIT.git - ################################################################################ ANDROID_SDK = $(shell grep '^sdk\.dir' local.properties | sed 's/^.*=[[:space:]]*//') @@ -159,17 +132,15 @@ NDK_MODULE_PATH = $(ANDROID_NDK)/toolchains clean_assets assets sqlite3_download \ freetype_download clean_freetype freetype \ luajit_download clean_luajit luajit \ -# gnuintl_download clean_gnuintl gnuintl \ apk clean_apk \ clean_all clean prep_srcdir \ install_debug install_release envpaths all \ $(ASSETS_TIMESTAMP) $(LUAJIT_TIMESTAMP) \ $(OPENAL_TIMESTAMP) $(VORBIS_TIMESTAMP) \ $(IRRLICHT_TIMESTAMP) $(CURL_TIMESTAMP) \ -# $(OPENSSL_TIMESTAMP) \ -# $(GNUINTL_TIMESTAMP) \ $(ANDR_ROOT)/jni/src/android_version.h \ $(ANDR_ROOT)/jni/src/android_version_githash.h +# $(OPENSSL_TIMESTAMP) \ debug : local.properties export NDEBUG=; \ @@ -190,21 +161,21 @@ delconfig: $(RM) local.properties local.properties: - @echo "Please specify path of ANDROID NDK"; \ - echo "e.g. $$HOME/Android/ndk-r11c/"; \ - 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 "Please specify path of ANDROID NDK"; \ + echo "e.g. $$HOME/Android/ndk-r11c/"; \ + 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; \ + fi; \ echo "sdk.dir = $$SDKFLDR" >> local.properties; @@ -219,10 +190,10 @@ openal_download : echo "openal sources missing, downloading..."; \ mkdir -p ${ANDR_ROOT}/deps; \ cd ${ANDR_ROOT}/deps ; \ -# git clone ${OPENAL_URL_GIT} || exit 1; \ - wget ${OPENAL_URL} || exit 1; \ - unzip ${OPENAL_VER}.zip -d openal-soft || exit 1; \ - rm ${OPENAL_VER}.zip || exit 1; \ + git clone ${OPENAL_URL_GIT} || exit 1; \ +# wget ${OPENAL_URL} || exit 1; \ +# unzip ${OPENAL_VER}.zip -d openal-soft || exit 1; \ +# rm ${OPENAL_VER}.zip || exit 1; \ fi openal : $(OPENAL_LIB) @@ -241,6 +212,7 @@ $(OPENAL_LIB): $(OPENAL_TIMESTAMP) ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} \ APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ @@ -264,7 +236,7 @@ vorbis_download : echo "vorbis sources missing, downloading..."; \ mkdir -p ${ANDR_ROOT}/deps; \ cd ${ANDR_ROOT}/deps ; \ - git clone ${VORBIS_URL_GIT}|| exit 1; \ + git clone ${VORBIS_URL_GIT} || exit 1; \ fi vorbis : $(VORBIS_LIB) @@ -284,6 +256,7 @@ $(VORBIS_LIB): $(VORBIS_TIMESTAMP) ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} \ APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ @@ -305,11 +278,11 @@ $(OPENSSL_TIMESTAMP) : openssl_download openssl_download : @if [ ! -d ${OPENSSL_DIR} ] ; then \ echo "openssl sources missing, downloading..."; \ - mkdir -p ${ANDR_ROOT}/deps; \ - cd ${ANDR_ROOT}/deps; \ + mkdir -p ${ANDR_ROOT}/deps; \ + cd ${ANDR_ROOT}/deps; \ wget ${OPENSSL_URL} || exit 1; \ tar -xzf openssl-$(OPENSSL_VERSION).tar.gz; \ - $(RM) -rf $(ANDR_ROOT)/deps/openssl-$(OPENSSL_VERSION).tar.gz; \ + $(RM) -rf $(ANDR_ROOT)/deps/openssl-$(OPENSSL_VERSION).tar.gz; \ mv openssl-$(OPENSSL_VERSION) openssl; \ fi @@ -393,7 +366,7 @@ $(FREETYPE_LIB) : $(FREETYPE_TIMESTAMP) export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \ export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ - CC=${CROSS_PREFIX}gcc ./configure --host=${TARGET_HOST} \ + CC=${CROSS_PREFIX}gcc ./configure --enable-static --disable-shared --host=${TARGET_HOST} \ --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}; \ @@ -454,7 +427,7 @@ $(ICONV_LIB) : $(ICONV_TIMESTAMP) export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \ export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ - ./configure --enable-static --disable-shared --host=${TARGET_HOST2} || exit 1; \ + ./configure --enable-static --disable-shared --host=${TARGET_HOST} || exit 1; \ sed -i 's/LIBICONV_VERSION_INFO) /LIBICONV_VERSION_INFO) -avoid-version /g' lib/Makefile; \ grep "iconv_LDFLAGS" src/Makefile; \ $(MAKE) -s || exit 1; \ @@ -483,11 +456,11 @@ irrlicht_download : 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-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-CEGL.patch || exit 1; \ + patch -p1 < ${ANDR_ROOT}/patches/irrlicht-CEGL.patch || exit 1;\ fi $(IRRLICHT_TIMESTAMP) : irrlicht_download @@ -515,6 +488,7 @@ $(IRRLICHT_LIB): $(IRRLICHT_TIMESTAMP) $(FREETYPE_LIB) cd deps/irrlicht/source/Irrlicht/Android; \ ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ NDK_MODULE_PATH=${NDK_MODULE_PATH} \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} || exit 1; \ touch ${IRRLICHT_TIMESTAMP}; \ touch ${IRRLICHT_TIMESTAMP_INT}; \ @@ -569,11 +543,11 @@ $(CURL_LIB): $(CURL_TIMESTAMP) export CC=${CROSS_PREFIX}gcc; \ export CXX=${CROSS_PREFIX}g++; \ export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ -# export CPPFLAGS="$${CPPFLAGS} -I${OPENSSL_DIR}/include \ export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \ export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ -# export LDFLAGS="$${LDFLAGS} -L${OPENSSL_DIR} ${TARGET_LDFLAGS_ADDON}"; \ export LDFLAGS="$${LDFLAGS} ${TARGET_LDFLAGS_ADDON}"; \ +# export CPPFLAGS="$${CPPFLAGS} -I${OPENSSL_DIR}/include \ +# export LDFLAGS="$${LDFLAGS} -L${OPENSSL_DIR} ${TARGET_LDFLAGS_ADDON}"; \ # ./configure --host=${TARGET_HOST} --enable-static --disable-shared --with-ssl; \ ./configure --host=${TARGET_HOST} --enable-static --disable-shared; \ $(MAKE) -s || exit 1; \ @@ -598,10 +572,7 @@ mpir_download : echo "mpir sources missing, downloading..."; \ mkdir -p ${ANDR_ROOT}/deps; \ cd deps; \ - wget ${MPIR_URL_HTTP} || exit 1; \ - tar -xjf mpir-${MPIR_VERSION}.tar.bz2 || exit 1; \ - rm mpir-${MPIR_VERSION}.tar.bz2; \ - mv mpir-${MPIR_VERSION} mpir; \ + git clone ${MPIR_URL_GIT} || exit 1; \ fi mpir : $(MPIR_LIB) @@ -621,7 +592,7 @@ $(MPIR_LIB): $(MPIR_TIMESTAMP) mkdir -p ${MPIR_DIR}; \ echo "changed timestamp for mpir detected building..."; \ cd deps/mpir; \ - export CROSS_PREFIX=${CROSS_PREFIX}; \ + export CROSS_PREFIX=${CROSS_PREFIX}; \ export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-mpir; \ ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ --toolchain=${TARGET_TOOLCHAIN}-${COMPILER_VERSION} \ @@ -635,7 +606,7 @@ $(MPIR_LIB): $(MPIR_TIMESTAMP) touch ${MPIR_TIMESTAMP_INT}; \ $(RM) -rf $${TOOLCHAIN}; \ else \ - echo "nothing to be done for mpir"; \ + echo "nothing to be done for mpir"; \ fi clean_mpir: @@ -661,22 +632,22 @@ $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB) for DIRNAME in {builtin,client,doc,fonts,games,mods,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 ${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}; \ + 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}; \ + 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}; \ + touch ${ASSETS_TIMESTAMP}; \ fi; \ if [ ! -e $(ASSETS_TIMESTAMP) ] ; then \ touch $(ASSETS_TIMESTAMP); \ @@ -685,12 +656,12 @@ $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB) $(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}; \ + touch ${LUAJIT_TIMESTAMP}; \ fi luajit_download : @if [ ! -d ${LUAJIT_DIR} ] ; then \ - echo "luajit sources missing, downloading..."; \ + echo "luajit sources missing, downloading..."; \ mkdir -p ${ANDR_ROOT}/deps; \ cd ${ANDR_ROOT}/deps; \ git clone --branch ${LUAJIT_GIT_BRANCH} ${LUAJIT_URL_GIT} luajit || exit 1; \ @@ -730,54 +701,6 @@ $(LUAJIT_LIB): $(LUAJIT_TIMESTAMP) clean_luajit: $(RM) -R deps/luajit -$(GNUINTL_TIMESTAMP) : gnuintl_download - @LAST_MODIF=$$(find ${GNUINTL_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ - if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \ - touch ${GNUINTL_TIMESTAMP}; \ - fi - -gnuintl_download : - @if [ ! -d "${GNUINTL_DIR}" ] ; then \ - echo "gnuintl sources missing, downloading..."; \ -# mkdir -p ${ANDR_ROOT}/deps; \ -# cd deps; \ -# wget ${MPIR_URL_HTTP} || exit 1; \ -# tar -xjf gnuintl-${MPIR_VERSION}.tar.bz2 || exit 1; \ -# rm gnuintl-${MPIR_VERSION}.tar.bz2; \ -# mv gnuintl-${MPIR_VERSION} gnuintl; \ - fi - -gnuintl : $(GNUINTL_LIB) - -$(GNUINTL_LIB): $(GNUINTL_TIMESTAMP) - @REFRESH=0; \ - if [ ! -e ${GNUINTL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ! -e ${GNUINTL_LIB} ] ; then \ - REFRESH=1; \ - fi; \ - if [ ${GNUINTL_TIMESTAMP} -nt ${GNUINTL_TIMESTAMP_INT} ] ; then \ - REFRESH=1; \ - fi; \ - if [ $$REFRESH -ne 0 ] ; then \ - mkdir -p ${GNUINTL_DIR}; \ - echo "changed timestamp for gnuintl detected building..."; \ - cd ${GNUINTL_DIR}; \ - ${ANDROID_NDK}/ndk-build NDEBUG=${NDEBUG} \ - NDK_MODULE_PATH=${NDK_MODULE_PATH} \ - APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} || exit 1; \ - touch ${GNUINTL_TIMESTAMP}; \ - touch ${GNUINTL_TIMESTAMP_INT}; \ - $(RM) -rf $${TOOLCHAIN}; \ - else \ - echo "nothing to be done for gnuintl"; \ - fi - - -clean_gnuintl: - $(RM) -R sqlite - assets : $(ASSETS_TIMESTAMP) @REFRESH=0; \ if [ ! -e ${ASSETS_TIMESTAMP} ] ; then \ @@ -814,12 +737,14 @@ assets : $(ASSETS_TIMESTAMP) clean_assets : @$(RM) -r assets -apk: local.properties $(ICONV_LIB) $(IRRLICHT_LIB) $(CURL_LIB) $(MPIR_LIB) $(LUAJIT_LIB) \ +# $(MPIR_LIB) +apk: local.properties $(ICONV_LIB) $(IRRLICHT_LIB) $(CURL_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 assets + @${ANDROID_NDK}/ndk-build NDK_MODULE_PATH=${NDK_MODULE_PATH} \ GPROF=${GPROF} APP_ABI=${TARGET_ABI} \ APP_PLATFORM=${APP_PLATFORM} \ + NDK_TOOLCHAIN_VERSION=${COMPILER_VERSION} \ TARGET_LIBDIR=${TARGET_LIBDIR} && \ if [ ! -e ${APP_ROOT}/jniLibs ]; then \ ln -s ${ANDR_ROOT}/libs ${APP_ROOT}/jniLibs || exit 1; \ @@ -835,10 +760,10 @@ apk: local.properties $(ICONV_LIB) $(IRRLICHT_LIB) $(CURL_LIB) $(MPIR_LIB) $(LUA # 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/Minetest-debug.apk + ${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-debug.apk install_release: - ${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/Minetest-release.apk + ${ANDROID_SDK}/platform-tools/adb install -r build/outputs/apk/MultiCraft-release.apk prep_srcdir : @if [ ! -e ${ANDR_ROOT}/jni/src ]; then \ diff --git a/build/android/jni/Android.mk b/build/android/jni/Android.mk index 5853f4690..c42d096bc 100644 --- a/build/android/jni/Android.mk +++ b/build/android/jni/Android.mk @@ -32,11 +32,6 @@ LOCAL_MODULE := vorbis LOCAL_SRC_FILES := deps/libvorbis-android/obj/local/$(APP_ABI)/libvorbis.a include $(PREBUILT_STATIC_LIBRARY) -include $(CLEAR_VARS) -LOCAL_MODULE := mpir -LOCAL_SRC_FILES := deps/mpir/usr/local/lib/libmpir.a -include $(PREBUILT_STATIC_LIBRARY) - include $(CLEAR_VARS) LOCAL_MODULE := LuaJIT LOCAL_SRC_FILES := deps/luajit/src/libluajit.a @@ -84,8 +79,6 @@ LOCAL_CXXFLAGS += -mfpu=vfpv3-d16 -march=armv7-a -Ofast -fdata-sections -ffuncti LOCAL_LDFLAGS = -Wl,--no-warn-mismatch,--gc-sections endif -TARGET_CFLAGS_ADDON = -mfpu=vfpv3-d16 -D_NDK_MATH_NO_SOFTFP=1 -mhard-float -march=armv7-a -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden - endif ifdef GPROF @@ -94,10 +87,9 @@ LOCAL_CFLAGS += -pg endif ifeq ($(TARGET_ARCH_ABI),x86) -LOCAL_CFLAGS += -mhard-float -Ofast -fno-fast-math -funsafe-math-optimizations -fno-trapping-math -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden -fno-stack-protector +LOCAL_CFLAGS += -Ofast -fno-fast-math -funsafe-math-optimizations -fno-trapping-math -ffinite-math-only -fno-rounding-math -fno-signaling-nans -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden -fno-stack-protector LOCAL_CXXFLAGS += -Ofast -fdata-sections -ffunction-sections -fmodulo-sched -fmodulo-sched-allow-regmoves -fvisibility=hidden LOCAL_LDFLAGS = -Wl,--no-warn-mismatch,--gc-sections -LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true endif LOCAL_C_INCLUDES := \ @@ -105,13 +97,13 @@ LOCAL_C_INCLUDES := \ jni/src/script \ jni/src/json \ jni/src/cguittfont \ + jni/src/gmp \ deps/irrlicht/include \ deps/libiconv/include \ deps/freetype/include \ deps/curl/include \ deps/openal-soft/include \ deps/libvorbis-android/jni/include \ - deps/mpir \ deps/sqlite/ \ deps/luajit/src \ # deps/gnuintl/jni/include \ @@ -241,7 +233,8 @@ LOCAL_SRC_FILES := \ jni/src/wieldmesh.cpp \ jni/src/client/clientlauncher.cpp \ jni/src/client/tile.cpp \ - jni/src/util/sha256.c + jni/src/util/sha256.c \ + jni/src/gmp/mini-gmp.c # jni/src/content_cso.cpp # Network @@ -300,7 +293,7 @@ LOCAL_SRC_FILES += jni/src/cguittfont/xCGUITTFont.cpp LOCAL_SRC_FILES += deps/sqlite/sqlite3.c # Threading -LOCAL_SRC_FILES += \ +LOCAL_SRC_FILES += \ jni/src/threading/event.cpp \ jni/src/threading/mutex.cpp \ jni/src/threading/semaphore.cpp \ @@ -309,10 +302,10 @@ LOCAL_SRC_FILES += \ # JSONCPP LOCAL_SRC_FILES += jni/src/json/jsoncpp.cpp -LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl iconv LuaJIT openal vorbis mpir android_native_app_glue $(PROFILER_LIBS) +LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl iconv LuaJIT openal vorbis android_native_app_glue $(PROFILER_LIBS) #LOCAL_SHARED_LIBRARIES := GNUIntl -LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid -lOpenSLES +LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES include $(BUILD_SHARED_LIBRARY) diff --git a/build/android/jni/Application.mk b/build/android/jni/Application.mk index c60b2d806..d9fa7a029 100644 --- a/build/android/jni/Application.mk +++ b/build/android/jni/Application.mk @@ -2,4 +2,4 @@ APP_MODULES := multicraft APP_STL := gnustl_shared #APP_STL := c++_shared #LIBCXX_FORCE_REBUILD := true -APP_CPPFLAGS += -fexceptions -frtti +APP_CPPFLAGS += -fexceptions -frtti -std=c++11 diff --git a/build/android/patches/irrlicht-CEGL.patch b/build/android/patches/irrlicht-CEGL.patch index 201e2ba42..b9c48f9d9 100644 --- a/build/android/patches/irrlicht-CEGL.patch +++ b/build/android/patches/irrlicht-CEGL.patch @@ -1,5 +1,5 @@ --- irrlicht/source/Irrlicht/CEGLManager.cpp.orig 2015-08-29 15:43:09.000000000 +0300 -+++ irrlicht/source/Irrlicht/CEGLManager.cpp 2016-09-13 17:23:12.000000000 +0300 ++++ irrlicht/source/Irrlicht/CEGLManager.cpp 2016-09-20 01:09:05.259201198 +0300 @@ -9,6 +9,10 @@ #include "irrString.h" #include "os.h" diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 71075111b..1a9befb12 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -110,7 +110,7 @@ void set_default_settings(Settings *settings) settings->setDefault("leaves_style", "fancy"); settings->setDefault("connected_glass", "false"); settings->setDefault("smooth_lighting", "true"); - settings->setDefault("display_gamma", "1.5"); + settings->setDefault("display_gamma", "1.4"); settings->setDefault("texture_path", ""); settings->setDefault("shader_path", ""); settings->setDefault("video_driver", "opengl"); @@ -118,7 +118,7 @@ void set_default_settings(Settings *settings) settings->setDefault("noclip", "false"); settings->setDefault("continuous_forward", "false"); settings->setDefault("cinematic", "false"); - settings->setDefault("camera_smoothing", "0"); + settings->setDefault("camera_smoothing", "0.1"); settings->setDefault("cinematic_camera_smoothing", "0.7"); settings->setDefault("fast_move", "false"); settings->setDefault("invert_mouse", "false"); @@ -135,10 +135,10 @@ void set_default_settings(Settings *settings) settings->setDefault("opaque_water", "false"); settings->setDefault("console_color", "(0,0,0)"); settings->setDefault("console_alpha", "200"); - settings->setDefault("selectionbox_color", "(0,0,0)"); - settings->setDefault("selectionbox_width", "2"); + settings->setDefault("selectionbox_color", "(255,255,255)"); + settings->setDefault("selectionbox_width", "4"); settings->setDefault("inventory_items_animations", "false"); - settings->setDefault("node_highlighting", "halo"); + settings->setDefault("node_highlighting", "box"); settings->setDefault("crosshair_color", "(255,255,255)"); settings->setDefault("crosshair_alpha", "255"); settings->setDefault("hud_scaling", "1.0"); @@ -343,27 +343,29 @@ void set_default_settings(Settings *settings) settings->setDefault("enable_shaders", "false"); settings->setDefault("fullscreen", "true"); settings->setDefault("video_driver", "ogles1"); - settings->setDefault("touchtarget", "true"); - settings->setDefault("touchscreen_threshold","20"); + settings->setDefault("touchtarget", "false"); + settings->setDefault("touchscreen_threshold", "20"); settings->setDefault("smooth_lighting", "false"); settings->setDefault("emergequeue_limit_diskonly", "8"); settings->setDefault("emergequeue_limit_generate", "8"); settings->setDefault("max_block_generate_distance", "3"); - settings->setDefault("enable_3d_clouds", "false"); - settings->setDefault("fps_max", "30"); +// settings->setDefault("enable_3d_clouds", "false"); + settings->setDefault("fps_max", "35"); settings->setDefault("pause_fps_max", "5"); settings->setDefault("sqlite_synchronous", "0"); settings->setDefault("gui_scaling", "1.2"); settings->setDefault("doubletap_jump", "true"); - settings->setDefault("client_mapblock_limit", "500"); + settings->setDefault("client_mapblock_limit", "250"); settings->setDefault("active_block_range", "1"); settings->setDefault("chunksize", "3"); - settings->setDefault("directional_colored_fog", "false"); - settings->setDefault("gui_scaling_filter", "false"); settings->setDefault("gui_scaling_filter_txr2img", "false"); settings->setDefault("max_simultaneous_block_sends_per_client", "5"); + settings->setDefault("abm_interval", "2.0"); + settings->setDefault("selectionbox_width", "7"); + settings->setDefault("cloud_radius", "6"); + settings->setDefault("client_unload_unused_data_timeout", "120"); - settings->setDefault("viewing_range", "25"); + settings->setDefault("viewing_range", "30"); settings->setDefault("inventory_image_hack", "false"); // check for device with small screen @@ -372,6 +374,7 @@ void set_default_settings(Settings *settings) if (x_inches < 5) { // all phones settings->setDefault("hud_scaling", "0.6"); + settings->setDefault("mouse_sensitivity", "0.15"); } if (x_inches < 3.7) { // small 4" phones @@ -382,15 +385,13 @@ void set_default_settings(Settings *settings) if (x_inches > 5) { // tablets settings->setDefault("hud_scaling", "0.85"); - settings->setDefault("mouse_sensitivity", "0.15"); + settings->setDefault("mouse_sensitivity", "0.2"); } settings->setDefault("mono_font_path", "/system/fonts/DroidSansMono.ttf"); settings->setDefault("fallback_font_path", "/system/fonts/DroidSans.ttf"); settings->setDefault("curl_verify_cert","false"); -#else - settings->setDefault("screen_dpi", "72"); #endif } diff --git a/src/game.cpp b/src/game.cpp index edf0a7f8a..624df5c58 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1162,7 +1162,11 @@ static void show_pause_menu(GUIFormSpecMenu **cur_formspec, bool singleplayermode) { +#ifndef __ANDROID__ float ypos = singleplayermode ? 0.5 : 0.1; +#else + float ypos =1.0; +#endif std::ostringstream os; os << FORMSPEC_VERSION_STRING << SIZE_TAG @@ -1180,7 +1184,7 @@ static void show_pause_menu(GUIFormSpecMenu **cur_formspec, << strgettext("Change Keys") << "]"; #endif os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_menu;" - << strgettext("Exit to Menu") << "]"; + << strgettext("Save and Exit") << "]"; os << "button_exit[4," << (ypos++) << ";3,0.5;btn_exit_os;" << strgettext("Close game") << "]" << "\n;]"; diff --git a/src/hud.cpp b/src/hud.cpp index 28773ca7f..a561b0fbf 100644 --- a/src/hud.cpp +++ b/src/hud.cpp @@ -103,7 +103,7 @@ Hud::Hud(video::IVideoDriver *driver, scene::ISceneManager* smgr, if (mode == "box") { m_use_selection_mesh = false; m_selection_material.Thickness = - rangelim(g_settings->getS16("selectionbox_width"), 1, 5); + rangelim(g_settings->getS16("selectionbox_width"), 1, 7); } else if (mode == "halo") { m_use_selection_mesh = true; m_selection_material.setTexture(0, tsrc->getTextureForMesh("halo.png")); @@ -484,10 +484,17 @@ void Hud::drawCrosshair() core::rect(0, 0, size.X, size.Y), 0, crosshair_argb, true); } else { +#ifdef __ANDROID__ + driver->draw2DLine(m_displaycenter - v2s32(40, 0), + m_displaycenter + v2s32(40, 0), crosshair_argb); + driver->draw2DLine(m_displaycenter - v2s32(0, 40), + m_displaycenter + v2s32(0, 40), crosshair_argb); +#else driver->draw2DLine(m_displaycenter - v2s32(10, 0), m_displaycenter + v2s32(10, 0), crosshair_argb); driver->draw2DLine(m_displaycenter - v2s32(0, 10), m_displaycenter + v2s32(0, 10), crosshair_argb); +#endif } } @@ -511,12 +518,9 @@ void Hud::drawSelectionMesh() i->MinEdge + m_selection_pos_with_offset, i->MaxEdge + m_selection_pos_with_offset); - u32 r = (selectionbox_argb.getRed() * - m_selection_mesh_color.getRed() / 255); - u32 g = (selectionbox_argb.getGreen() * - m_selection_mesh_color.getGreen() / 255); - u32 b = (selectionbox_argb.getBlue() * - m_selection_mesh_color.getBlue() / 255); + u32 r = (selectionbox_argb.getRed()); + u32 g = (selectionbox_argb.getGreen()); + u32 b = (selectionbox_argb.getBlue()); driver->draw3DBox(box, video::SColor(255, r, g, b)); } driver->setMaterial(oldmaterial); diff --git a/src/sky.cpp b/src/sky.cpp index 682ff05e3..83126af92 100644 --- a/src/sky.cpp +++ b/src/sky.cpp @@ -512,9 +512,9 @@ void Sky::update(float time_of_day, float time_brightness, (155./255*1.2,193./255,240./255, 1.0); video::SColorf skycolor_bright_normal_f = - video::SColor(255, 140, 186, 250); + video::SColor(255, 2, 138, 255); video::SColorf skycolor_bright_dawn_f = - video::SColor(255, 180, 186, 250); + video::SColor(255, 180, 186, 255); video::SColorf cloudcolor_bright_normal_f = video::SColor(255, 240,240,255); diff --git a/src/touchscreengui.h b/src/touchscreengui.h index 391021a0b..ec2412c99 100644 --- a/src/touchscreengui.h +++ b/src/touchscreengui.h @@ -62,7 +62,7 @@ typedef enum { after_last_element_id } touch_gui_button_id; -#define MIN_DIG_TIME_MS 500 +#define MIN_DIG_TIME_MS 300 #define MAX_TOUCH_COUNT 64 #define BUTTON_REPEAT_DELAY 0.2f diff --git a/src/util/srp.cpp b/src/util/srp.cpp index 844f73d16..755785e4d 100644 --- a/src/util/srp.cpp +++ b/src/util/srp.cpp @@ -44,7 +44,8 @@ #if USE_SYSTEM_GMP #include #elif defined (__ANDROID__) - #include +// #include + #include #else #include #endif