Android: remove obsolete build system
This commit is contained in:
parent
6eddf5b1d7
commit
856c8c8b3f
@ -1,44 +1,6 @@
|
||||
MultiCraft: Android version
|
||||
===========================
|
||||
|
||||
Controls
|
||||
--------
|
||||
The Android port doesn't support everything you can do on PC due to the
|
||||
limited capabilities of common devices. What can be done is described
|
||||
below:
|
||||
|
||||
While you're playing the game normally (that is, no menu or inventory is
|
||||
shown), the following controls are available:
|
||||
* Look around: touch screen and slide finger
|
||||
* double tap: place a node or use selected item
|
||||
* long tap: dig node
|
||||
* touch shown buttons: press button
|
||||
* Buttons:
|
||||
** left upper corner: chat
|
||||
** right lower corner: jump
|
||||
** right lower corner: crouch
|
||||
** left lower corner: walk/step...
|
||||
left up right
|
||||
down
|
||||
** left lower corner: display inventory
|
||||
|
||||
When a menu or inventory is displayed:
|
||||
* double tap outside menu area: close menu
|
||||
* tap on an item stack: select that stack
|
||||
* tap on an empty slot: if you selected a stack already, that stack is placed here
|
||||
* drag and drop: touch stack and hold finger down, move the stack to another
|
||||
slot, tap another finger while keeping first finger on screen
|
||||
--> places a single item from dragged stack into current (first touched) slot
|
||||
|
||||
Special settings
|
||||
----------------
|
||||
There are some settings especially useful for Android users. MultiCraft's config
|
||||
file can usually be found at /sdcard/Android/data/mobi.MultiCraft/files.
|
||||
|
||||
* gui_scaling: this is a user-specified scaling factor for the GUI- In case
|
||||
main menu is too big or small on your device, try changing this
|
||||
value.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
@ -51,9 +13,8 @@ versions may or may not work.
|
||||
|
||||
* android SDK (28+)
|
||||
* android NDK (r17c)
|
||||
* git
|
||||
* wget
|
||||
* g++-multilib
|
||||
* m4
|
||||
* gettext
|
||||
|
||||
Additionally, you'll need to have an Internet connection available on the
|
||||
@ -62,58 +23,9 @@ build system, as the Android build will download some source packages.
|
||||
Build
|
||||
-----
|
||||
|
||||
Debug build:
|
||||
* Enter "build/android" subdirectory
|
||||
* Execute "make"
|
||||
* Answer the questions about where SDK and NDK are located on your filesystem
|
||||
* Wait for build to finish
|
||||
The new build system MultiCraft Android is still WIP, but it is fully functional and is designed to speed up and simplify the work, as well as adding the possibility of cross-platform build.
|
||||
The Makefile is no longer used and will be removed in future releases. Use the "Start.sh" script, which will automatically download pre-built dependencies, prepare localization files and archive all necessary files.
|
||||
Then you can use "./gradlew assemblerelease" or "./graldew assembledebug" from the command line or use Android Studio and click the build button.
|
||||
|
||||
After the build is finished, the resulting apk can be fond in
|
||||
build/android/bin/. It will be called MultiCraft-debug.apk
|
||||
|
||||
Release build:
|
||||
|
||||
* In order to make a release build you'll have to have a keystore setup to sign
|
||||
the resulting apk package. How this is done is not part of this README. There
|
||||
are different tutorials on the web explaining how to do it
|
||||
- choose one yourself.
|
||||
|
||||
* Once your keystore is setup, enter build/android subdirectory and create a new
|
||||
file "ant.properties" there. Add following lines to that file:
|
||||
|
||||
> key.store=<path to your keystore>
|
||||
> key.alias=MultiCraft
|
||||
|
||||
* Execute "make release"
|
||||
* Enter your keystore as well as your Mintest key password once asked. Be
|
||||
careful it's shown on console in clear text!
|
||||
* The result can be found at "bin/MultiCraft-release.apk"
|
||||
|
||||
Other things that may be nice to know
|
||||
------------
|
||||
* The environment for Android development tools is saved within Android build
|
||||
build folder. If you want direct access to it do:
|
||||
|
||||
> make envpaths
|
||||
> . and_env
|
||||
|
||||
After you've done this you'll have your path and path variables set correct
|
||||
to use adb and all other Android development tools
|
||||
|
||||
* You can build a single dependency by calling make and the dependency's name,
|
||||
e.g.:
|
||||
|
||||
> make irrlicht
|
||||
|
||||
* You can completely cleanup a dependency by calling make and the "clean" target,
|
||||
e.g.:
|
||||
|
||||
> make clean_irrlicht
|
||||
|
||||
|
||||
The new build system MultiCraft Android is still WIP, but it is fully functional and is designed to speed up and simplify the work, as well as adding the possibility of cross-platform build.
|
||||
The Makefile is no longer used and will be removed in future releases. Use the "Start" script, which will automatically load pre-assembled dependencies, prepare localization files and archive all necessary files.
|
||||
Then you can use "./gradlew assemblerelease" or "./graldew assembledebug" from the command line or use Android Studio and click the build button.
|
||||
|
||||
When using gradlew, the newest NDK will be downloaded and installed automatically. Or you can create a local.properties file and specify sdk.dir and ndk.dir yourself.
|
||||
The script will automatically create an APK for all the architectures specified in build.gradle.
|
||||
When using gradlew, the newest NDK will be downloaded and installed automatically. Or you can create a local.properties file and specify sdk.dir and ndk.dir yourself.
|
||||
The script will automatically create an APK for all the architectures specified in build.gradle.
|
||||
|
@ -1,823 +0,0 @@
|
||||
######################################################################################
|
||||
|
||||
# compile with GPROF
|
||||
# GPROF = 1
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for ARMv7 (gcc, NDK r17c)
|
||||
######################################################################################
|
||||
|
||||
#API = 16
|
||||
#TARGET_HOST = arm-linux
|
||||
#TARGET_ABI = armeabi-v7a
|
||||
#TARGET_ARCH = arm
|
||||
#TARGET_TOOLCHAIN = arm-linux-androideabi
|
||||
#TARGET_CFLAGS_ADDON = -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
#TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
#CROSS_PREFIX = arm-linux-androideabi
|
||||
#CROSS_CC = ${CROSS_PREFIX}-gcc
|
||||
#CROSS_CXX = ${CROSS_PREFIX}-g++
|
||||
#HOST_CC = "gcc -m32" # required for LuaJIT
|
||||
#COMPILER_VERSION = 4.9
|
||||
#APP_STL = gnustl_static
|
||||
#APP_STL_LIB = gnustl
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for ARMv7 (Clang)
|
||||
######################################################################################
|
||||
|
||||
#API = 16
|
||||
#TARGET_HOST = arm-linux
|
||||
#TARGET_ABI = armeabi-v7a
|
||||
#TARGET_ARCH = arm
|
||||
#TARGET_TOOLCHAIN = arm-linux-androideabi
|
||||
#TARGET_CFLAGS_ADDON = -mthumb -Ofast -fdata-sections -ffunction-sections -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
#TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
#CROSS_PREFIX = arm-linux-androideabi
|
||||
#CROSS_CC = clang
|
||||
#CROSS_CXX = clang++
|
||||
#HOST_CC = "gcc -m32" # required for LuaJIT
|
||||
#COMPILER_VERSION = clang
|
||||
#APP_STL = c++_shared
|
||||
#APP_STL_LIB = libc++
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for ARM64 (gcc, NDK r17c)
|
||||
######################################################################################
|
||||
|
||||
#API = 21
|
||||
#TARGET_HOST = arm-linux
|
||||
#TARGET_ABI = arm64-v8a
|
||||
#TARGET_ARCH = arm64
|
||||
#TARGET_TOOLCHAIN = aarch64-linux-android
|
||||
#TARGET_CFLAGS_ADDON = -Ofast -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
#TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
#CROSS_PREFIX = aarch64-linux-android
|
||||
#CROSS_CC = ${CROSS_PREFIX}-gcc
|
||||
#CROSS_CXX = ${CROSS_PREFIX}-g++
|
||||
#HOST_CC = "gcc -m64" # required for LuaJIT
|
||||
#COMPILER_VERSION = 4.9
|
||||
#APP_STL = gnustl_static
|
||||
#APP_STL_LIB = gnustl
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for ARM64 (Clang)
|
||||
######################################################################################
|
||||
|
||||
API = 21
|
||||
TARGET_HOST = arm-linux
|
||||
TARGET_ABI = arm64-v8a
|
||||
TARGET_ARCH = arm64
|
||||
TARGET_TOOLCHAIN = aarch64-linux-android
|
||||
TARGET_CFLAGS_ADDON = -Ofast -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
CROSS_PREFIX = aarch64-linux-android
|
||||
CROSS_CC = clang
|
||||
CROSS_CXX = clang++
|
||||
HOST_CC = "gcc -m64" # required for LuaJIT
|
||||
COMPILER_VERSION = clang
|
||||
APP_STL = c++_shared
|
||||
APP_STL_LIB = libc++
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for x86 (gcc, NDK r17c)
|
||||
######################################################################################
|
||||
|
||||
#API = 16
|
||||
#TARGET_HOST = x86-linux
|
||||
#TARGET_ABI = x86
|
||||
#TARGET_ARCH = x86
|
||||
#TARGET_TOOLCHAIN = x86
|
||||
#TARGET_CFLAGS_ADDON = -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -Ofast -funroll-loops -fdata-sections -ffunction-sections -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
#TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
#CROSS_PREFIX = i686-linux-android
|
||||
#CROSS_CC = ${CROSS_PREFIX}-gcc
|
||||
#CROSS_CXX = ${CROSS_PREFIX}-g++
|
||||
#HOST_CC = "gcc -m32" # required for LuaJIT
|
||||
#COMPILER_VERSION = 4.9
|
||||
#APP_STL = gnustl_static
|
||||
#APP_STL_LIB = gnustl
|
||||
|
||||
######################################################################################
|
||||
# toolchain config for x86 (clang)
|
||||
######################################################################################
|
||||
|
||||
#API = 16
|
||||
#TARGET_HOST = x86-linux
|
||||
#TARGET_ABI = x86
|
||||
#TARGET_ARCH = x86
|
||||
#TARGET_TOOLCHAIN = x86
|
||||
#TARGET_CFLAGS_ADDON = -march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -Ofast -funroll-loops -fdata-sections -ffunction-sections -fvisibility=hidden -fexceptions -D__ANDROID_API__=$(API)
|
||||
#TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) -frtti
|
||||
#CROSS_PREFIX = i686-linux-android
|
||||
#CROSS_CC = clang
|
||||
#CROSS_CXX = clang++
|
||||
#HOST_CC = "gcc -m32" # required for LuaJIT
|
||||
#COMPILER_VERSION = clang
|
||||
#APP_STL = c++_shared
|
||||
#APP_STL_LIB = libc++
|
||||
|
||||
######################################################################################
|
||||
|
||||
SHELL := /bin/bash
|
||||
ANDR_ROOT = $(shell pwd)
|
||||
|
||||
LEVELDB_VERSION = 1.20
|
||||
LEVELDB_DIR = $(ANDR_ROOT)/deps/leveldb
|
||||
LEVELDB_LIB = $(LEVELDB_DIR)/out-static/libleveldb.a
|
||||
LEVELDB_TIMESTAMP = $(LEVELDB_DIR)/timestamp
|
||||
LEVELDB_TIMESTAMP_INT = $(ANDR_ROOT)/deps/leveldb_timestamp
|
||||
LEVELDB_URL = https://github.com/google/leveldb/archive/v$(LEVELDB_VERSION).zip
|
||||
|
||||
OPENAL_VERSION = v1.19
|
||||
OPENAL_DIR = $(ANDR_ROOT)/deps/openal-soft
|
||||
OPENAL_LIB = $(OPENAL_DIR)/libopenal.a
|
||||
OPENAL_TIMESTAMP = $(OPENAL_DIR)/timestamp
|
||||
OPENAL_TIMESTAMP_INT = $(ANDR_ROOT)/deps/openal_timestamp
|
||||
OPENAL_URL_GIT = https://github.com/kcat/openal-soft/
|
||||
|
||||
VORBIS_DIR = $(ANDR_ROOT)/deps/libvorbis-android
|
||||
VORBIS_LIB = $(VORBIS_DIR)/obj/local/$(TARGET_ABI)/libvorbis.a
|
||||
VORBIS_TIMESTAMP = $(VORBIS_DIR)/timestamp
|
||||
VORBIS_TIMESTAMP_INT = $(ANDR_ROOT)/deps/vorbis_timestamp
|
||||
VORBIS_URL_GIT = https://github.com/MoNTE48/libvorbis-android
|
||||
|
||||
IRRLICHT_COMMIT = ogl-es
|
||||
IRRLICHT_DIR = $(ANDR_ROOT)/deps/irrlicht
|
||||
IRRLICHT_LIB = $(IRRLICHT_DIR)/lib/Android/libIrrlicht.a
|
||||
IRRLICHT_TIMESTAMP = $(IRRLICHT_DIR)/timestamp
|
||||
IRRLICHT_TIMESTAMP_INT = $(ANDR_ROOT)/deps/irrlicht_timestamp
|
||||
IRRLICHT_URL_HTTP = https://github.com/zaki/irrlicht/archive/$(IRRLICHT_COMMIT).zip
|
||||
|
||||
CURL_VERSION = 7.65.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
|
||||
|
||||
FREETYPE_VERSION = 2.10.1
|
||||
FREETYPE_DIR = $(ANDR_ROOT)/deps/freetype
|
||||
FREETYPE_LIB = $(FREETYPE_DIR)/objs/.libs/libfreetype.a
|
||||
FREETYPE_TIMESTAMP = $(FREETYPE_DIR)/timestamp
|
||||
FREETYPE_TIMESTAMP_INT = $(ANDR_ROOT)/deps/freetype_timestamp
|
||||
FREETYPE_URL_HTTP = https://sourceforge.net/projects/freetype/files/freetype2/$(FREETYPE_VERSION)/freetype-$(FREETYPE_VERSION).tar.xz
|
||||
|
||||
ICONV_VERSION = 1.16
|
||||
ICONV_DIR = $(ANDR_ROOT)/deps/libiconv
|
||||
ICONV_URL_HTTP = https://ftp.gnu.org/pub/gnu/libiconv/libiconv-$(ICONV_VERSION).tar.gz
|
||||
|
||||
LUAJIT_GIT_BRANCH = v2.1
|
||||
LUAJIT_DIR = $(ANDR_ROOT)/deps/luajit
|
||||
LUAJIT_LIB = $(LUAJIT_DIR)src/libluajit.a
|
||||
LUAJIT_TIMESTAMP = $(LUAJIT_DIR)/timestamp
|
||||
LUAJIT_TIMESTAMP_INT = $(ANDR_ROOT)/deps/luajit_timestamp
|
||||
LUAJIT_URL_GIT = https://github.com/LuaJIT/LuaJIT.git
|
||||
|
||||
GMP_VERSION = 6.1.2
|
||||
GMP_DIR = $(ANDR_ROOT)/deps/gmp
|
||||
GMP_LIB = $(GMP_DIR)/usr/lib/libgmp.a
|
||||
GMP_TIMESTAMP = $(GMP_DIR)/timestamp
|
||||
GMP_TIMESTAMP_INT = $(ANDR_ROOT)/deps/gmp_timestamp
|
||||
GMP_URL_HTTP = https://gmplib.org/download/gmp/gmp-$(GMP_VERSION).tar.xz
|
||||
|
||||
ASSETS_TIMESTAMP = $(ANDR_ROOT)/deps/assets_timestamp
|
||||
|
||||
######################################################################################
|
||||
|
||||
PROJ_ROOT = $(shell realpath $(ANDR_ROOT)/../..)
|
||||
APP_ROOT = $(ANDR_ROOT)/src/main
|
||||
|
||||
APP_PLATFORM = android-$(API)
|
||||
|
||||
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=0; \
|
||||
export BUILD_TYPE=debug; \
|
||||
$(MAKE) apk
|
||||
|
||||
all : debug release
|
||||
|
||||
release : local.properties
|
||||
@export NDEBUG=1; \
|
||||
export BUILD_TYPE=release; \
|
||||
$(MAKE) apk
|
||||
|
||||
reconfig: delconfig
|
||||
@$(MAKE) local.properties
|
||||
|
||||
delconfig:
|
||||
$(RM) local.properties
|
||||
|
||||
local.properties:
|
||||
@echo "Please specify path of ANDROID NDK"; \
|
||||
echo "e.g. $$HOME/Android/ndk-r17b/"; \
|
||||
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}; \
|
||||
fi
|
||||
|
||||
openal_download :
|
||||
@if [ ! -d ${OPENAL_DIR} ] ; then \
|
||||
echo "openal sources missing, downloading..."; \
|
||||
mkdir -p ${ANDR_ROOT}/deps; \
|
||||
cd ${ANDR_ROOT}/deps ; \
|
||||
git clone --branch ${OPENAL_VERSION} ${OPENAL_URL_GIT} 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; \
|
||||
sed '/CMAKE_CXX_COMPILER/ s/-g++"/-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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
if [[ ${COMPILER_VERSION} == "clang" && ${API} -lt 18 ]] ; then \
|
||||
cd "$${TOOLCHAIN}/sysroot/usr/local/include"; \
|
||||
sed '/log2f/ s/^/\/\//' -i math.h; \
|
||||
cd ${OPENAL_DIR}; \
|
||||
fi; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
cmake . \
|
||||
-DCMAKE_TOOLCHAIN_FILE=XCompile-Android.txt -DLIBTYPE=STATIC \
|
||||
-DCMAKE_C_FLAGS="${TARGET_CFLAGS_ADDON}" \
|
||||
-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 :
|
||||
$(RM) -rf ${OPENAL_DIR}
|
||||
|
||||
$(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}; \
|
||||
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; \
|
||||
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} \
|
||||
APP_PLATFORM=${APP_PLATFORM} \
|
||||
TARGET_ABI=${TARGET_ABI} \
|
||||
APP_STL=${APP_STL} \
|
||||
COMPILER_VERSION=${COMPILER_VERSION} \
|
||||
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 :
|
||||
$(RM) -rf ${VORBIS_DIR}
|
||||
|
||||
$(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}; \
|
||||
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; \
|
||||
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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export CC=${CROSS_CC}; \
|
||||
export CXX=${CROSS_CXX}; \
|
||||
export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \
|
||||
export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \
|
||||
export CXXFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \
|
||||
$(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 :
|
||||
$(RM) -rf deps/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}; \
|
||||
fi
|
||||
|
||||
freetype_download :
|
||||
@if [ ! -d ${FREETYPE_DIR} ] ; then \
|
||||
echo "freetype sources missing, downloading..."; \
|
||||
mkdir -p ${ANDR_ROOT}/deps; \
|
||||
cd deps; \
|
||||
mkdir freetype; \
|
||||
wget ${FREETYPE_URL_HTTP} || exit 1; \
|
||||
tar -xJf freetype-${FREETYPE_VERSION}.tar.xz -C freetype --strip-components=1 || exit 1; \
|
||||
rm freetype-${FREETYPE_VERSION}.tar.xz; \
|
||||
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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \
|
||||
export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \
|
||||
export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \
|
||||
CC=${CROSS_CC} ./configure --enable-static --disable-shared --host=${TARGET_TOOLCHAIN} \
|
||||
--prefix=${TOOLCHAIN} --with-png=no --with-harfbuzz=no || exit 1; \
|
||||
CC=${CROSS_CC} 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"; \
|
||||
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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
./configure || exit 1; \
|
||||
fi
|
||||
|
||||
clean_iconv :
|
||||
$(RM) -rf ${ICONV_DIR}
|
||||
|
||||
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-native_activity.patch || exit 1; \
|
||||
patch -p1 < ${ANDR_ROOT}/patches/irrlicht-roundingerror.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}; \
|
||||
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} \
|
||||
APP_PLATFORM=${APP_PLATFORM} \
|
||||
TARGET_ABI=${TARGET_ABI} \
|
||||
APP_STL=${APP_STL} \
|
||||
COMPILER_VERSION=${COMPILER_VERSION} \
|
||||
TARGET_CPPFLAGS_ADDON="${TARGET_CXXFLAGS_ADDON}" \
|
||||
TARGET_CFLAGS_ADDON="${TARGET_CFLAGS_ADDON}" \
|
||||
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 :
|
||||
$(RM) -rf deps/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}; \
|
||||
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; \
|
||||
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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export CC=${CROSS_CC}; \
|
||||
export CXX=${CROSS_CXX}; \
|
||||
export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \
|
||||
export CPPFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \
|
||||
./configure --host=${TARGET_TOOLCHAIN} --enable-static --disable-shared \
|
||||
--disable-debug --disable-verbose --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; \
|
||||
$(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}
|
||||
|
||||
$(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB)
|
||||
@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; \
|
||||
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); \
|
||||
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}; \
|
||||
fi
|
||||
|
||||
luajit_download :
|
||||
@if [ ! -d ${LUAJIT_DIR} ] ; then \
|
||||
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;\
|
||||
fi
|
||||
|
||||
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.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export TARGET_FLAGS="${TARGET_CFLAGS_ADDON} -fno-fast-math"; \
|
||||
$(MAKE) CROSS=${CROSS_PREFIX}- TARGET_CC=${CROSS_PREFIX}-clang \
|
||||
XCFLAGS="-DLUAJIT_DISABLE_FFI" HOST_CC=${HOST_CC} 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
|
||||
|
||||
$(GMP_TIMESTAMP) : gmp_download
|
||||
@LAST_MODIF=$$(find ${GMP_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \
|
||||
if [ $$(basename $$LAST_MODIF) != "timestamp" ] ; then \
|
||||
touch ${GMP_TIMESTAMP}; \
|
||||
fi
|
||||
|
||||
gmp_download :
|
||||
@if [ ! -d "${GMP_DIR}" ] ; then \
|
||||
echo "gmp sources missing, downloading..."; \
|
||||
mkdir -p ${ANDR_ROOT}/deps; \
|
||||
cd deps; \
|
||||
mkdir gmp; \
|
||||
wget ${GMP_URL_HTTP} || exit 1; \
|
||||
tar -xJf gmp-${GMP_VERSION}.tar.xz -C gmp --strip-components=1 || exit 1; \
|
||||
rm gmp-${GMP_VERSION}.tar.xz; \
|
||||
fi
|
||||
|
||||
gmp : $(GMP_LIB)
|
||||
|
||||
$(GMP_LIB): $(GMP_TIMESTAMP)
|
||||
@REFRESH=0; \
|
||||
if [ ! -e ${GMP_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ! -e ${GMP_LIB} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ ${GMP_TIMESTAMP} -nt ${GMP_TIMESTAMP_INT} ] ; then \
|
||||
REFRESH=1; \
|
||||
fi; \
|
||||
if [ $$REFRESH -ne 0 ] ; then \
|
||||
mkdir -p ${GMP_DIR}; \
|
||||
echo "changed timestamp for gmp detected building..."; \
|
||||
cd deps/gmp; \
|
||||
export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-gmp; \
|
||||
${ANDROID_NDK}/build/tools/make_standalone_toolchain.py \
|
||||
--arch ${TARGET_ARCH} \
|
||||
--api ${API} \
|
||||
--stl=${APP_STL_LIB} \
|
||||
--install-dir=$${TOOLCHAIN}; \
|
||||
export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \
|
||||
export CC=${CROSS_CC}; \
|
||||
export CXX=${CROSS_CXX}; \
|
||||
export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \
|
||||
export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \
|
||||
export CXXFLAGS="$${CPPFLAGS} ${TARGET_CXXFLAGS_ADDON}"; \
|
||||
./configure --host=${TARGET_TOOLCHAIN} --enable-static --disable-shared --prefix=/usr; \
|
||||
$(MAKE) install DESTDIR=/${GMP_DIR} || exit 1; \
|
||||
touch ${GMP_TIMESTAMP}; \
|
||||
touch ${GMP_TIMESTAMP_INT}; \
|
||||
$(RM) -rf $${TOOLCHAIN}; \
|
||||
else \
|
||||
echo "nothing to be done for gmp"; \
|
||||
fi
|
||||
|
||||
clean_gmp:
|
||||
$(RM) -R deps/gmp
|
||||
|
||||
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; \
|
||||
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; \
|
||||
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"; \
|
||||
fi
|
||||
|
||||
clean_assets :
|
||||
@$(RM) -r ${APP_ROOT}/assets
|
||||
|
||||
apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(GMP_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB) \
|
||||
$(OPENAL_LIB) $(VORBIS_LIB) prep_srcdir iconv_download assets
|
||||
+@cd native; \
|
||||
${ANDROID_NDK}ndk-build \
|
||||
APP_STL=${APP_STL} COMPILER_VERSION=${COMPILER_VERSION} \
|
||||
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 BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \
|
||||
./gradlew 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\'"
|
||||
|
||||
install_debug:
|
||||
${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/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; \
|
||||
fi
|
||||
|
||||
clean_apk :
|
||||
./gradlew clean
|
||||
|
||||
clean_all :
|
||||
@$(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
|
||||
|
||||
clean : clean_apk clean_assets
|
@ -1,6 +0,0 @@
|
||||
APP_PLATFORM := ${APP_PLATFORM}
|
||||
APP_ABI := ${TARGET_ABI}
|
||||
APP_STL := ${APP_STL}
|
||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||
|
||||
APP_CFLAGS := ${TARGET_CXXFLAGS_ADDON}
|
@ -1,17 +0,0 @@
|
||||
APP_PLATFORM := ${APP_PLATFORM}
|
||||
APP_ABI := ${TARGET_ABI}
|
||||
APP_STL := ${APP_STL}
|
||||
NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION}
|
||||
APP_MODULES := Irrlicht
|
||||
|
||||
APP_CPPFLAGS := ${TARGET_CPPFLAGS_ADDON}
|
||||
APP_CFLAGS := $(APP_CPPFLAGS)
|
||||
APP_CXXFLAGS := $(APP_CPPFLAGS)
|
||||
|
||||
ifeq ($(COMPILER_VERSION),4.9)
|
||||
APP_CPPFLAGS += -flto
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_VERSION),clang)
|
||||
APP_CPPFLAGS += -std=gnu++11
|
||||
endif
|
@ -1,20 +0,0 @@
|
||||
--- irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp.orig 2015-08-29 15:43:09.000000000 +0300
|
||||
+++ irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp 2016-05-13 21:36:22.880388505 +0300
|
||||
@@ -486,7 +486,7 @@
|
||||
event.KeyInput.Char = 0;
|
||||
}
|
||||
|
||||
- device->postEventFromUser(event);
|
||||
+ status = device->postEventFromUser(event);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -543,7 +543,7 @@
|
||||
KeyMap[1] = KEY_LBUTTON; // AKEYCODE_SOFT_LEFT
|
||||
KeyMap[2] = KEY_RBUTTON; // AKEYCODE_SOFT_RIGHT
|
||||
KeyMap[3] = KEY_HOME; // AKEYCODE_HOME
|
||||
- KeyMap[4] = KEY_BACK; // AKEYCODE_BACK
|
||||
+ KeyMap[4] = KEY_CANCEL; // AKEYCODE_BACK
|
||||
KeyMap[5] = KEY_UNKNOWN; // AKEYCODE_CALL
|
||||
KeyMap[6] = KEY_UNKNOWN; // AKEYCODE_ENDCALL
|
||||
KeyMap[7] = KEY_KEY_0; // AKEYCODE_0
|
@ -1,12 +0,0 @@
|
||||
--- irrlicht/source/Irrlicht/CEGLManager.cpp.orig 2018-04-24 19:27:51.034727946 +0200
|
||||
+++ irrlicht/source/Irrlicht/CEGLManager.cpp 2018-04-24 19:27:55.084614618 +0200
|
||||
@@ -8,6 +8,9 @@
|
||||
|
||||
#include "irrString.h"
|
||||
#include "os.h"
|
||||
+#if defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
|
||||
+#include <android/native_activity.h>
|
||||
+#endif
|
||||
|
||||
namespace irr
|
||||
{
|
@ -1,15 +0,0 @@
|
||||
--- irrlicht/include/irrMath.h.orig 2019-04-01 22:16:52.000000000 +0200
|
||||
+++ irrlicht/include/irrMath.h 2019-04-01 22:22:52.000000000 +0200
|
||||
@@ -198,6 +198,12 @@
|
||||
}
|
||||
|
||||
template <>
|
||||
+ inline s16 roundingError()
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ template <>
|
||||
inline s32 roundingError()
|
||||
{
|
||||
return ROUNDING_ERROR_S32;
|
@ -1,30 +0,0 @@
|
||||
--- irrlicht.orig/include/IEventReceiver.h 2014-06-03 19:43:50.433713133 +0200
|
||||
+++ irrlicht/include/IEventReceiver.h 2014-06-03 19:44:36.993711489 +0200
|
||||
@@ -375,6 +375,9 @@
|
||||
// Y position of simple touch.
|
||||
s32 Y;
|
||||
|
||||
+ // number of current touches
|
||||
+ s32 touchedCount;
|
||||
+
|
||||
//! Type of touch event.
|
||||
ETOUCH_INPUT_EVENT Event;
|
||||
};
|
||||
--- irrlicht.orig/source/Irrlicht/Android/CIrrDeviceAndroid.cpp 2014-06-03 19:43:50.505713130 +0200
|
||||
+++ irrlicht/source/Irrlicht/Android/CIrrDeviceAndroid.cpp 2014-06-03 19:45:37.265709359 +0200
|
||||
@@ -315,6 +315,7 @@
|
||||
event.TouchInput.ID = AMotionEvent_getPointerId(androidEvent, i);
|
||||
event.TouchInput.X = AMotionEvent_getX(androidEvent, i);
|
||||
event.TouchInput.Y = AMotionEvent_getY(androidEvent, i);
|
||||
+ event.TouchInput.touchedCount = AMotionEvent_getPointerCount(androidEvent);
|
||||
|
||||
device->postEventFromUser(event);
|
||||
}
|
||||
@@ -326,6 +327,7 @@
|
||||
event.TouchInput.ID = AMotionEvent_getPointerId(androidEvent, pointerIndex);
|
||||
event.TouchInput.X = AMotionEvent_getX(androidEvent, pointerIndex);
|
||||
event.TouchInput.Y = AMotionEvent_getY(androidEvent, pointerIndex);
|
||||
+ event.TouchInput.touchedCount = AMotionEvent_getPointerCount(androidEvent);
|
||||
|
||||
device->postEventFromUser(event);
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
--- libiconv/libcharset/lib/localcharset.c.orig 2016-12-02 14:55:29.000000000 +0200
|
||||
+++ libiconv/libcharset/lib/localcharset.c 2017-03-12 23:48:39.113259171 +0200
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
#if !defined WINDOWS_NATIVE
|
||||
# include <unistd.h>
|
||||
-# if HAVE_LANGINFO_CODESET
|
||||
+# if HAVE_LANGINFO_CODESET && !(defined __ANDROID__)
|
||||
# include <langinfo.h>
|
||||
# else
|
||||
# if 0 /* see comment below */
|
||||
@@ -128,7 +128,7 @@
|
||||
cp = charset_aliases;
|
||||
if (cp == NULL)
|
||||
{
|
||||
-#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2)
|
||||
+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2 || defined __ANDROID__)
|
||||
const char *dir;
|
||||
const char *base = "charset.alias";
|
||||
char *file_name;
|
||||
@@ -342,6 +342,9 @@
|
||||
"CP54936" "\0" "GB18030" "\0"
|
||||
"CP65001" "\0" "UTF-8" "\0";
|
||||
# endif
|
||||
+# if defined __ANDROID__
|
||||
+ cp = "*" "\0" "UTF-8" "\0";
|
||||
+# endif
|
||||
# if defined OS2
|
||||
/* To avoid the troubles of installing a separate file in the same
|
||||
directory as the DLL and of retrieving the DLL's directory at
|
||||
@@ -395,7 +398,7 @@
|
||||
const char *codeset;
|
||||
const char *aliases;
|
||||
|
||||
-#if !(defined WINDOWS_NATIVE || defined OS2)
|
||||
+#if !(defined WINDOWS_NATIVE || defined OS2 || defined __ANDROID__)
|
||||
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
|
Loading…
x
Reference in New Issue
Block a user