Commit Graph

57 Commits

Author SHA1 Message Date
sfan5 70579dc7c3 Android: Workarounds for Googles completely broken NDK 2016-12-22 22:17:54 +01:00
est31 1dd361f37c Android: update curl and libgmp 2016-12-21 14:36:14 +01:00
rubenwardy 2886f0ccb0 Fix sqlite databases being read-only on 64bit Android by patching sqlite (#4871)
Fixes #4121
2016-12-09 18:27:36 +01:00
est31 24719c6908 Android: fix build and update deps 2016-12-07 21:27:07 +01:00
est31 7a828de1bc Android: enable parallelism for main target too
This adds to the changes that commit

98d16e0d9a "Android: Tell make about sub-makes to speed up build"

did, and enables parallel builds for minetest
itself as well.
2016-05-16 05:14:25 +01:00
est31 997002703b Android: download deps using https
Its more secure, and some pages even redirect to the https version.
2016-05-12 05:03:15 +02:00
est31 a9b5c2662f Android: update openssl to 1.0.2h 2016-05-12 00:52:29 +02:00
ShadowNinja e41673820f Upgrade Android build to Gradle build system
The old Ant build system has been deprecated for a while and new development is focused on Gradle.
I also removed a hardcoded string that lint caught and moved the patch files to a subdirectory.
I left the JNI files in the root directory.
2016-04-28 12:28:42 -04:00
Maksim Gamarnik 26a9a85129 Android: Update dependencies, GMP was required as a dependency 2016-04-26 10:17:04 +01:00
Maksim Gamarnik 096a01ffef Update Android dependencies, -O3 optimization, remove old ARMv5 config
* Update OpenSSL (thanks @sapier, i use his patch!), Curl and SQLite3.
* Remove old arm config. Almost all phones that use ARMv5 have 1 core and 256-512 RAM, it's about 2-5 FPS.
* Do -O3 optimization for libs and remove -fexpensive-optimizations for Minetest (-O3 includes this! Read gcc docs).
* OpenSSL fix - thanks @sapier, again.
2016-03-05 05:52:45 +01:00
est31 a26970cdd4 Android: hardcode leveldb revision
Newest leveldb commit breaks build.
With no fix in sight, there is no other way
than to fall back to the last working leveldb
revision, and hardcode it.

Workaround for upstream bug

https://github.com/google/leveldb/issues/340
2016-02-22 17:46:16 +01:00
est31 ef779b0ab6 Fix compilation warning if compiling for android with c++11 2016-01-23 06:26:58 +01:00
est31 98d16e0d9a Android: Tell make about sub-makes to speed up build
Before, sub-makes called by make were called without make knowing they
were sub-makes. This however led make's jobserver not do its tasks,
and the build process ended up with inefficient parralelisation. This
commit fixes this by applying the two ways the make manual tells
about: putting + to the start of the line (used when ndk-build is
invoked), and exchanging "make" with "$(MAKE)".

Before, make complained with messages like:

make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

This complaint can now only been seen for openssl. openssl has issues
if make gets exchanged with $(MAKE): if exchanged, above error message
is multiplied for various subdirs of the openssl source tree.

On a 4 core box, "make -j 4" build time from "make clean_all" cleaned
source tree could be improved from 15:34 minutes to 10:45 minutes.
This means a speedup of 45%.
2015-12-23 06:17:42 +01:00
ShadowNinja b4eb614d31 Android: Fix extra files being copied to the APK
dcb91cf0c0 hacked around the biggest issue
this caused, but wasted a lot of CPU time and disk space  It also still
included a lot of other unwanted files.  This removes all of `doc/` except
the license, and also removes the server list.
2015-12-20 12:48:55 +01:00
Sapier bde6194638 Android: Remove unused build target curl_binary 2015-12-17 23:00:51 +01:00
Sapier dcb91cf0c0 Android: Don't put html docs to apk 2015-12-17 23:00:43 +01:00
Sapier a3fd167dda Android: Remove non freetype fonts from apk 2015-12-17 23:00:31 +01:00
est31 2f58e4d962 Android: hardcode irrlicht revision, update other dependencies
Recent irrlicht revisions break the build, hardcode the revision to a working one
until upstream publishes a working version. See issue #3366 for
a discussion about this.

Also update dependencies to current versions.
2015-11-16 17:33:01 +01:00
est31 183d0d5633 Update leveldb git url
Google code was shut down, project moved to github.
2015-09-08 21:45:16 +02:00
ShadowNinja 67d38a303b Add setting for mods to copy to Android app 2015-08-24 14:37:14 -04:00
est31 6a1047d8c1 Fix wrong android versionName
Before, android versionName was set to "...13", which made the f-droid build fail.
2015-08-21 22:47:04 +02:00
est31 d44fceac7e Bump version to 0.4.13 2015-08-20 04:02:00 +02:00
est31 47225346be Android: fix sound issue, and gitignore
Previously, sound failed due to errors with hardfp abi build
instructions. As the problem couldn't be found, the softfp
compatible abi was chosen instead.

This move will cause a small performance overhead, but due to the
abi being armeabi-v7a, the internal calculations will still be done
using the FPU.

We also fix some issues with ABI information passing. However, the
fixes aren't sufficient to get sound working.

The patch also fixes an issue with the gitignore file.
2015-08-02 19:23:17 +02:00
est31 c39a85a88d Android: Add githash header to spare rebuilds after new commits
Before, android_version.h got changed at every new commit. Now, we
only change it with new minetest releases. Analogous to how cmake
does it,  we add an android_version_githash.h file that communicates
the git hash to C++ code.

Also, unify VERS_MAJOR, VERS_MINOR and VERS_PATCH variable
calculation inside the whole makefile.
2015-08-01 20:42:07 +02:00
est31 e29b61ecd4 Android: speed up rebuild, and prevent race condition fail
Speeding up rebuild:

Before, we've written the android_version.h file at every rebuild.
As it thought the file's content has changed, make has rebuilt files
in the source tree that depended on that header file during rebuild,
causing lots of files being rebuilt without there being a reason.

The reasoning of make can be observed by passing -d and V=1 params
to the ndk-build command. You then got logging entries like:

Prerequisite `jni/src/android_version.h' is newer than target `obj/local/armeabi-v7a-hard/objs-debug/minetest/jni/src/areastore.o'.

Preventing race condition build fail:

Before, there was a race condition, where, if the prep_srcdir target
was executed in parallel with the $(ROOT)/jni/src/android_version.h
one, it could happen that the jni/src directory was nonexistent, and
we were trying to write into a file inside. This resulted in a build
failue:

/bin/sh: 1: cannot create [...]/jni/src/android_version.h: Directory nonexistent

Additionally, we now don't remove the link to src/ needlessly anymore.
Keeping this wouldn't have affected the rebuild, but this way its
more proper.
2015-07-31 10:12:20 +02:00
est31 7217fd32eb Fix 0.4.11 githash for android
Also make only one >-redirection, sparing repetition.
Also, use cut instead of awk, which is shorter and should be a bit faster.
2015-07-31 04:51:57 +02:00
est31 eb3aac20c8 Android: fix horrible libiconv build
Before, our libiconv build was a joke. We first called configure for our own build host system,
then called make, before we executed a Android.mk script we provided as patch. The first "native make"
always failed, and the LIBICONV_LIB file setting in our Makefile didn't match the built one,
resulting in an always-rebuild of iconv.

This commit cleans up this total mess, removes the double-build, and the Android.mk, and properly calls
./configure with the according target platform, and uses a built toolchain.

As we have to deal with the android bug "NDK: Support for prebuild libs with full sonames"
https://code.google.com/p/android/issues/detail?id=55868
as the 2013 patch
https://lists.gnu.org/archive/html/libtool-patches/2013-06/msg00002.html
by Google's David Turner wasn't inside the 2011 libtool, we pass -avoid-version to
libtool.

Thanks to the proper build, wide_to_utf8 works for android now, removing us of the need to disable it.
2015-07-29 15:59:06 +02:00
est31 f97c2702a2 Android: Fix minor makefile bugs
Fix commenting happening thanks to missing quotes and dereference variable the right way,
to get rid of a compile error.
2015-07-29 15:53:23 +02:00
est31 a31d08be55 Android: use loop inside makefile to spare repetition 2015-06-20 07:48:17 +02:00
est31 572990dcd3 Add utf-8 conversion utilities and re-add intlGUIEditBox 2015-06-13 19:49:55 +02:00
est31 c849d32a10 Reposition irrlicht timestamp in makefile 2015-06-11 23:56:54 +02:00
est31 33a633a631 Fix libgmp for Android
Android terminated immediately after start since commit
181f7baa45
because library wasn't loaded, and libminetest.so required
libgmp.so.10 instead of libgmp.so.

The second issue has been solved by the linker flags.
2015-05-15 05:08:59 +02:00
est31 181f7baa45 Add LibGMP
Uses system provided libgmp if found, if not it falls back to mini-gmp.
2015-05-11 17:48:33 +02:00
Craig Robbins 5ee0d8ac81 Fix Android build-related bugs
E.g. Sound and freetype always being disabled, redefinition of pre-processor directives
2015-03-29 22:27:01 +10:00
ShadowNinja 93fcab952b Clean up and tweak build system
* Combine client and server man pages.
  * Update unit test options and available databases in man page.
  * Add `--worldname` to man page.
  * Fix a bunch of places where `"Minetest"` was used directly instead of `PROJECT_NAME`.
  * Disable server build by default on all operating systems.
  * Make `ENABLE_FREETYPE` not fail if FreeType isn't found.
  * Enable LevelDB, Redis, and FreeType detection by default.
  * Remove the `VERSION_PATCH_ORIG` hack.
  * Add option to search for and use system JSONCPP.
  * Remove broken LuaJIT version detection.
  * Rename `DISABLE_LUAJIT` to `ENABLE_LUAJIT`.
  * Rename `minetest_*` variables in `version.{h,cpp}` to `g_*`.
  * Clean up style of CMake files.
2015-03-27 15:00:48 -04:00
est31 15d9cd3a6f Fix Android build on 32 bit
Remove the --system=linux-x86_64 which isn't neccessary on 64 bit,
as, when given no --system parameter, the standalone-toolchain.sh script
figures out the platform on itself. Naturally, the hardcoded setting broke
android building on 32 bit systems.
2015-03-23 14:11:39 +10:00
Loic Blot 94b3950958 Remove Android makefile ugly make -j hack 2015-03-17 15:48:48 +01:00
Loic Blot ceac41ed6e Bump android version code 2015-03-16 20:37:31 +01:00
Loic Blot 2bc0165652 Android Makefile update backported from stable-0.4 with minor changes 2015-03-15 11:21:34 +01:00
Loic Blot 155116852a Android: Backport changes from stable-0.4 2015-03-14 19:59:14 +01:00
Loic Blot 1488542968 AndroidManifest.xml version bump 2015-03-14 18:28:02 +01:00
Maksim Gamarnik c788b17322 Update Android Makefile
ARMv7 default build
Update curl
Update OpenSSL
2015-03-08 15:48:40 +10:00
Perttu Ahola e6ad2ace10 Bump version to 0.4.12 2015-02-18 23:50:01 +01:00
sapier 9f52149a11 Android, build: Update curl to 7.40.00 2015-01-15 21:51:54 +01:00
sapier 04d4a00393 Fix armv7 using arm arch while arm uses armv7 2015-01-08 00:11:30 +01:00
sapier 2b8ed9e80c Switch android build to external sqlite3 2015-01-07 01:01:03 +01:00
sapier 083d19b3fc Fixes for android
Copy only minetest_game to apk by default
Don't copy .git and .svn folders to apk
Fix bouncing asset copy scrollbar due to long filepaths
Reenable font scaling to fix broken menu on high dpi screens
Implement minetest loglevel to android loglevel mapping
Disable touch digging while moving around
2015-01-06 16:13:39 +01:00
sapier a92c083011 Fix broken android version due to new openssl not linking correct to curl 2015-01-05 00:51:35 +01:00
sapier bf5d6e670a Switch to official openssl version and update to 1.0.1j 2015-01-04 16:57:19 +01:00
sapier 35149a10e3 Speedup initial android startup on some devices by factor 10 or more 2015-01-02 17:20:55 +01:00