X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=build%2Fandroid%2FMakefile;h=68625b6a7cc026cdff974836e272206fec3bc8f4;hb=10b208f5c16d3d608fd029372422dd801aaa56ae;hp=38a3cbb0ee37531ad6be663e51cc850a0963ec4f;hpb=96f285f71e75b5ff80357b994e3284adc163d5e5;p=dragonfireclient.git diff --git a/build/android/Makefile b/build/android/Makefile index 38a3cbb0e..68625b6a7 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -20,11 +20,13 @@ PATHCFGFILE = path.cfg ROOT = $(shell pwd) +GAMES_TO_COPY = minetest_game + ################################################################################ # Android Version code # Increase for each build! ################################################################################ -ANDROID_VERSION_CODE = 4 +ANDROID_VERSION_CODE = 5 ################################################################################ # toolchain config for arm old processors @@ -34,8 +36,10 @@ TARGET_ABI = armeabi TARGET_LIBDIR = armeabi TARGET_TOOLCHAIN = arm-linux-androideabi- TARGET_CFLAGS_ADDON = -mfloat-abi=softfp -mfpu=vfp +TARGET_ARCH = arm CROSS_PREFIX = arm-linux-androideabi- COMPILER_VERSION = 4.8 +HAVE_LEVELDB = 1 ################################################################################ # toolchain config for arm new processors @@ -48,8 +52,10 @@ COMPILER_VERSION = 4.8 # -mfloat-abi=hard -march=armv7-a #TARGET_CXXFLAGS_ADDON = $(TARGET_CFLAGS_ADDON) #TARGET_LDFLAGS_ADDON = -Wl,--no-warn-mismatch -lm_hard +#TARGET_ARCH = armv7 #CROSS_PREFIX = arm-linux-androideabi- #COMPILER_VERSION = 4.8 +#HAVE_LEVELDB = 1 ################################################################################ # toolchain config for little endian mips @@ -58,8 +64,10 @@ COMPILER_VERSION = 4.8 #TARGET_ABI = mips #TARGET_LIBDIR = mips #TARGET_TOOLCHAIN = mipsel-linux-android- +#TARGET_ARCH = mips32 #CROSS_PREFIX = mipsel-linux-android- #COMPILER_VERSION = 4.8 +#HAVE_LEVELDB = 0 ################################################################################ # toolchain config for x86 @@ -69,7 +77,9 @@ COMPILER_VERSION = 4.8 #TARGET_LIBDIR = x86 #TARGET_TOOLCHAIN = x86- #CROSS_PREFIX = i686-linux-android- +#TARGET_ARCH = x86 #COMPILER_VERSION = 4.8 +#HAVE_LEVELDB = 1 ################################################################################ ASSETS_TIMESTAMP = deps/assets_timestamp @@ -99,14 +109,15 @@ IRRLICHT_TIMESTAMP = $(IRRLICHT_DIR)timestamp IRRLICHT_TIMESTAMP_INT = $(ROOT)/deps/irrlicht_timestamp IRRLICHT_URL_SVN = http://svn.code.sf.net/p/irrlicht/code/branches/ogl-es/ -OPENSSL_BASEDIR = openssl-android +OPENSSL_VERSION = 1.0.1j +OPENSSL_BASEDIR = openssl-$(OPENSSL_VERSION) OPENSSL_DIR = $(ROOT)/deps/$(OPENSSL_BASEDIR)/ -OPENSSL_LIB = $(OPENSSL_DIR)libs/$(TARGET_ABI)/libopenssl.so +OPENSSL_LIB = $(OPENSSL_DIR)/libssl.so.1.0.0 OPENSSL_TIMESTAMP = $(OPENSSL_DIR)timestamp OPENSSL_TIMESTAMP_INT = $(ROOT)/deps/openssl_timestamp -OPENSSL_URL_GIT = https://github.com/wobbals/openssl-android +OPENSSL_URL = http://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -CURL_VERSION = 7.35.0 +CURL_VERSION = 7.40.0 CURL_DIR = $(ROOT)/deps/curl-$(CURL_VERSION) CURL_LIB = $(CURL_DIR)/lib/.libs/libcurl.a CURL_TIMESTAMP = $(CURL_DIR)/timestamp @@ -114,17 +125,25 @@ CURL_TIMESTAMP_INT = $(ROOT)/deps/curl_timestamp CURL_URL_HTTP = http://curl.haxx.se/download/curl-${CURL_VERSION}.tar.bz2 FREETYPE_DIR = $(ROOT)/deps/freetype2-android/ -FREETYPE_LIB = $(FREETYPE_DIR)/Android/obj/local/$(TARGER_ABI)/libfreetype2-static.a +FREETYPE_LIB = $(FREETYPE_DIR)/Android/obj/local/$(TARGET_ABI)/libfreetype2-static.a FREETYPE_TIMESTAMP = $(FREETYPE_DIR)timestamp FREETYPE_TIMESTAMP_INT = $(ROOT)/deps/freetype_timestamp FREETYPE_URL_GIT = https://github.com/cdave1/freetype2-android +SQLITE3_FOLDER = sqlite-amalgamation-3080704 +SQLITE3_URL = http://www.sqlite.org/2014/$(SQLITE3_FOLDER).zip + -include $(PATHCFGFILE) +#use interim target variable to switch leveldb on or off +ifeq ($(HAVE_LEVELDB),1) + LEVELDB_TARGET = $(LEVELDB_LIB) +endif + .PHONY : debug release reconfig delconfig \ leveldb_download clean_leveldb leveldb\ irrlicht_download clean_irrlicht irrlicht \ - clean_assets assets \ + clean_assets assets sqlite3_download \ freetype_download clean_freetype freetype \ apk clean_apk \ clean_all clean prep_srcdir \ @@ -135,7 +154,7 @@ FREETYPE_URL_GIT = https://github.com/cdave1/freetype2-android $(IRRLICHT_TIMESTAMP) $(CURL_TIMESTAMP) \ $(OPENSSL_TIMESTAMP) curl_binary \ $(ROOT)/jni/src/android_version.h - + debug : $(PATHCFGFILE) export NDEBUG=; \ export BUILD_TYPE=debug; \ @@ -163,9 +182,9 @@ $(PATHCFGFILE) : exit 1; \ fi; \ echo "ANDROID_NDK = $$ANDROID_NDK" > ${PATHCFGFILE}; \ - echo "NDK_MODULE_PATH = $$ANDROID_NDK/tools" >> ${PATHCFGFILE}; \ + echo "NDK_MODULE_PATH = $$ANDROID_NDK/toolchains" >> ${PATHCFGFILE}; \ echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";\ - echo "+ Note: NDK_MODULE_PATH is set to $$ANDROID_NDK/tools"; \ + echo "+ Note: NDK_MODULE_PATH is set to $$ANDROID_NDK/toolchains"; \ echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";\ echo "Please specify path of ANDROID SDK"; \ echo "e.g. /home/user/adt-bundle-linux-x86_64-20131030/sdk/"; \ @@ -274,7 +293,10 @@ openssl_download : echo "openssl sources missing, downloading..."; \ mkdir -p ${ROOT}/deps; \ cd ${ROOT}/deps ; \ - git clone ${OPENSSL_URL_GIT} || exit 1; \ + wget ${OPENSSL_URL} || exit 1; \ + tar -xzf ${OPENSSL_BASEDIR}.tar.gz; \ + cd ${OPENSSL_BASEDIR}; \ + patch -p1 < ../../openssl_arch.patch; \ fi openssl : $(OPENSSL_LIB) @@ -289,24 +311,27 @@ $(OPENSSL_LIB): $(OPENSSL_TIMESTAMP) REFRESH=1; \ fi; \ if [ $$REFRESH -ne 0 ] ; then \ - export PATH=$$PATH:${SDKFOLDER}/platform-tools:${ANDROID_NDK}; \ echo "changed timestamp for openssl detected building..."; \ cd ${OPENSSL_DIR}; \ - cat jni/Application.mk | grep -v NDK_TOOLCHAIN_VERSION >jni/Application.mk.new;\ - mv jni/Application.mk.new jni/Application.mk; \ - ndk-build NDEBUG=${NDEBUG} NDK_MODULE_PATH=${NDK_MODULE_PATH} \ - APP_ABI=${TARGET_ABI} APP_PLATFORM=${APP_PLATFORM} -j${PARALLEL} \ - TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ - TARGET_LDFLAGS+="${TARGET_LDFLAGS_ADDON}" \ - TARGET_CXXFLAGS+="${TARGET_CXXFLAGS_ADDON}" || exit 1; \ + ln -s ${OPENSSL_DIR} ../openssl; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-openssl; \ + ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ + --toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \ + --install-dir=$${TOOLCHAIN} --system=linux-x86_64; \ + export PATH="$${TOOLCHAIN}/bin:$${PATH}"; \ + CC=${CROSS_PREFIX}gcc ./Configure android-${TARGET_ARCH} no-idea no-seed -no-sha0 -DL_ENDIAN;\ + CC=${CROSS_PREFIX}gcc ANDROID_DEV=/tmp/ndk-${TARGET_HOST} make build_libs; \ touch ${OPENSSL_TIMESTAMP}; \ touch ${OPENSSL_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ else \ echo "nothing to be done for openssl"; \ fi clean_openssl : - $(RM) -rf ${OPENSSL_DIR} + $(RM) -rf ${OPENSSL_DIR}; \ + $(RM) -rf $(ROOT)/deps/${OPENSSL_BASEDIR}.tar.gz; \ + $(RM) -rf $(ROOT)/deps/openssl $(LEVELDB_TIMESTAMP) : leveldb_download @LAST_MODIF=$$(find ${LEVELDB_DIR} -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ @@ -337,7 +362,7 @@ $(LEVELDB_LIB): $(LEVELDB_TIMESTAMP) echo "changed timestamp for leveldb detected building..."; \ cd deps/leveldb; \ export CROSS_PREFIX=${CROSS_PREFIX}; \ - export TOOLCHAIN=/tmp/ndk-arm; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-leveldb; \ ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ --toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \ --install-dir=$${TOOLCHAIN} --system=linux-x86_64; \ @@ -351,6 +376,7 @@ $(LEVELDB_LIB): $(LEVELDB_TIMESTAMP) $(MAKE) -j${PARALLEL} -s || exit 1; \ touch ${LEVELDB_TIMESTAMP}; \ touch ${LEVELDB_TIMESTAMP_INT}; \ + $(RM) -rf $${TOOLCHAIN}; \ else \ echo "nothing to be done for leveldb"; \ fi @@ -473,6 +499,7 @@ curl_download : wget ${CURL_URL_HTTP} || exit 1; \ tar -xjf curl-${CURL_VERSION}.tar.bz2 || exit 1; \ rm curl-${CURL_VERSION}.tar.bz2; \ + ln -s curl-${CURL_VERSION} curl; \ fi curl : $(CURL_LIB) @@ -494,7 +521,7 @@ $(CURL_LIB): $(CURL_TIMESTAMP) $(OPENSSL_LIB) echo "changed timestamp for curl detected building..."; \ cd deps/curl-${CURL_VERSION}; \ export CROSS_PREFIX=${CROSS_PREFIX}; \ - export TOOLCHAIN=/tmp/ndk-arm; \ + export TOOLCHAIN=/tmp/ndk-${TARGET_HOST}-curl; \ ${ANDROID_NDK}/build/tools/make-standalone-toolchain.sh \ --toolchain=${TARGET_TOOLCHAIN}${COMPILER_VERSION} \ --install-dir=$${TOOLCHAIN} --system=linux-x86_64; \ @@ -503,20 +530,21 @@ $(CURL_LIB): $(CURL_TIMESTAMP) $(OPENSSL_LIB) export CXX=${CROSS_PREFIX}g++; \ export TARGET_OS=OS_ANDROID_CROSSCOMPILE; \ export CPPFLAGS="$${CPPFLAGS} -I${OPENSSL_DIR}/include \ - -L${OPENSSL_DIR}/libs/${TARGET_ABI}/ ${TARGET_CFLAGS_ADDON}"; \ + -L${OPENSSL_DIR} ${TARGET_CFLAGS_ADDON}"; \ export CFLAGS="$${CFLAGS} ${TARGET_CFLAGS_ADDON}"; \ - export LDFLAGS="$${LDFLAGS} -L${OPENSSL_DIR}/libs/${TARGET_ABI}/ \ - ${TARGET_LDFLAGS_ADDON}"; \ + export LDFLAGS="$${LDFLAGS} -L${OPENSSL_DIR} ${TARGET_LDFLAGS_ADDON}"; \ ./configure --host=${TARGET_HOST} --disable-shared --enable-static --with-ssl; \ $(MAKE) -j${PARALLEL} -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) -rf deps/curl-${CURL_VERSION} + $(RM) -rf deps/curl-${CURL_VERSION} \ + $(RM) -f deps/curl curl_binary: @@ -530,6 +558,18 @@ curl_binary: rm curl-7.34.0-rtmp-ssh2-ssl-zlib-static-bin-android.tar.gz; \ fi +sqlite3_download: deps/${SQLITE3_FOLDER}/sqlite3.c + +deps/${SQLITE3_FOLDER}/sqlite3.c : + cd deps; \ + wget ${SQLITE3_URL}; \ + unzip ${SQLITE3_FOLDER}.zip; \ + ln -s ${SQLITE3_FOLDER} sqlite + +clean_sqlite3: + cd deps && $(RM) -rf ${SQLITE3_FOLDER} && $(RM) -f ${SQLITE3_FOLDER}.zip && \ + $(RM) -f sqlite + $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB) @mkdir -p ${ROOT}/deps; \ LAST_MODIF=$$(find ${ROOT}/../../builtin -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" "); \ @@ -610,16 +650,25 @@ assets : $(ASSETS_TIMESTAMP) cp -r ${ROOT}/../../client ${ROOT}/assets/Minetest; \ cp -r ${ROOT}/../../doc ${ROOT}/assets/Minetest; \ cp -r ${ROOT}/../../fonts ${ROOT}/assets/Minetest; \ - cp -r ${ROOT}/../../games ${ROOT}/assets/Minetest; \ + mkdir ${ROOT}/assets/Minetest/games; \ + for game in ${GAMES_TO_COPY}; \ + do \ + cp -r ${ROOT}/../../games/$$game ${ROOT}/assets/Minetest/games/; \ + done; \ cp -r ${ROOT}/../../mods ${ROOT}/assets/Minetest; \ cp -r ${ROOT}/../../po ${ROOT}/assets/Minetest; \ cp -r ${ROOT}/../../textures ${ROOT}/assets/Minetest; \ mkdir -p ${ROOT}/assets/Minetest/media; \ cp -r ${IRRLICHT_DIR}/media/Shaders ${ROOT}/assets/Minetest/media; \ - cd ${ROOT}/assets; \ + cd ${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 {} \; ; \ ls -R | grep ":$$" | sed -e 's/:$$//' -e 's/\.//' -e 's/^\///' > "index.txt"; \ + find Minetest >"filelist.txt"; \ cp ${ROOT}/${ASSETS_TIMESTAMP} ${ROOT}/${ASSETS_TIMESTAMP}.old; \ else \ echo "nothing to be done for assets"; \ @@ -628,14 +677,15 @@ assets : $(ASSETS_TIMESTAMP) clean_assets : @$(RM) -r assets -apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) \ - $(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ROOT)/jni/src/android_version.h +apk: $(PATHCFGFILE) assets $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_TARGET) \ + $(OPENAL_LIB) $(OGG_LIB) prep_srcdir $(ROOT)/jni/src/android_version.h \ + sqlite3_download @export NDEBUG=$$NDEBUG; $(MAKE) -j${PARALLEL} manifest; \ export PATH=$$PATH:${SDKFOLDER}/platform-tools:${ANDROID_NDK}; \ export ANDROID_HOME=${SDKFOLDER}; \ mkdir -p ${ROOT}/src; \ ndk-build NDK_MODULE_PATH=${NDK_MODULE_PATH} -j${PARALLEL} \ - GPROF=${GPROF} APP_ABI=${TARGET_ABI} \ + GPROF=${GPROF} APP_ABI=${TARGET_ABI} HAVE_LEVELDB=${HAVE_LEVELDB} \ APP_PLATFORM=${APP_PLATFORM} \ TARGET_LIBDIR=${TARGET_LIBDIR} \ TARGET_CFLAGS+="${TARGET_CFLAGS_ADDON}" \ @@ -691,7 +741,11 @@ $(ROOT)/jni/src/android_version.h : echo "#define VERSION_PATCH_ORIG $$(cat ${ROOT}/../../CMakeLists.txt | \ grep ^set\(VERSION_PATCH\ | sed 's/)/ /' | awk '{print $$2;}')" \ >> ${ROOT}/jni/src/android_version.h; \ - echo "#define CMAKE_VERSION_GITHASH \"$$(git rev-parse --short=8 HEAD)\"" \ + export GITHASH=$$(git rev-parse --short=8 HEAD); \ + if [ "x$$GITHASH" = "x" ] ; then \ + export GITHASH=gUnknown; \ + fi; \ + echo "#define CMAKE_VERSION_GITHASH \"$$GITHASH\"" \ >> ${ROOT}/jni/src/android_version.h; \ echo "#define CMAKE_VERSION_STRING STR(VERSION_MAJOR)\".\"STR(VERSION_MINOR)\ \".\"STR(VERSION_PATCH)" \