Commit Graph

88 Commits

Author SHA1 Message Date
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
ShadowNinja 0079887b64 Move AreaStore to util 2016-03-07 16:33:20 -05: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 f3f4af3fb9 Fix android build
Android had a linker error since commit:

31e0667a4a "Add Lua interface to HTTPFetchRequest"

Fixes #3766. Thanks to @MoNTE48 for reporting the bug.
2016-02-23 01:48:52 +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
Duane Robertson 3c6b2ffb10 Add Valleys mapgen. 2016-01-14 05:04:29 +00:00
Sapier 9c9b02ca8a Android: shorten initial progress bar text way more simple 2015-12-23 21:01:35 +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 6133b2bc45 Fix android build
Fix android build since commit

696148e298 "Fix Event implementation"

by @ShadowNinja.

Fixes #3444. Thanks @kwolekr for pointing out the fix.
2015-12-11 11:24:26 +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
paramat 76c9abe4c8 Mapgen: Add flat mapgen in hidden form 2015-11-11 09:37:54 +00:00
est31 49bda7f98d Android: statically load iconv library
Fixes #3291

Thanks to @arpruss for reporting the bug, and suggesting the fix.

Also, remove trailing whitespaces.
2015-10-24 20:47:02 +02:00
paramat d152b55971 Android/Mapgen: Add fractal mapgen file to android makefiles 2015-10-06 22:32:13 +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
ShadowNinja 32e4f4b32d Fix Android build of threading sources 2015-08-24 11:20:53 -04:00
ShadowNinja e4bff8be94 Clean up threading
* Rename everything.
    * Strip J prefix.
    * Change UpperCamelCase functions to lowerCamelCase.
  * Remove global (!) semaphore count mutex on OSX.
  * Remove semaphore count getter (unused, unsafe, depended on internal
    API functions on Windows, and used a hack on OSX).
  * Add `Atomic<type>`.
  * Make `Thread` handle thread names.
  * Add support for C++11 multi-threading.
  * Combine pthread and win32 sources.
  * Remove `ThreadStarted` (unused, unneeded).
  * Move some includes from the headers to the sources.
  * Move all of `Event` into its header (allows inlining with no new includes).
  * Make `Event` use `Semaphore` (except on Windows).
  * Move some porting functions into `Thread`.
  * Integrate logging with `Thread`.
  * Add threading test.
2015-08-23 22:04:06 -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 c30a2d6854 Add AreaStore data structure 2015-07-27 06:42:56 +02:00
RealBadAngel ffd16e3fec Add minimap feature 2015-06-27 03:42:01 +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
kwolekr 6c5a6967ec Split ObjDef/ObjDefManager out to objdef.cpp 2015-05-18 22:30:25 -04:00
ShadowNinja 3a8c788880 Add mod security
Due to compatibility concerns, this is temporarily disabled.
2015-05-16 18:32:31 -04: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 82e35edff5 Make early protocol auth mechanism generic, and add SRP
Adds everything needed for SRP (and everything works too),
but still deactivated, as protocol v25 init packets aren't final yet.
Can be activated by changing the LATEST_PROTOCOL_VERSION header to 25
inside networkprotocol.h.
2015-05-11 18:40:27 +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
kwolekr 2dba29ebf2 Tests: Add schematic unittests
Improve schematic file-saving interface
Add ability to create temporary test files
2015-05-08 00:55:42 -04:00
kwolekr b45df9d6a7 Tests: Add NodeResolver unittests
Minor misc. NodeResolver cleanups
Prefix faux content type constants for testing with t_ to avoid
confusion or name collisions
2015-05-05 12:00:36 -04:00
kwolekr 8f38f8255c Tests: Add ObjDef unittests 2015-05-03 22:19:35 -04:00
kwolekr 37ca3212ee Fix MSVC compatibility
Make sure to include random unittests in android builds, too
Use SWAP() macro
Ensure that negative ranges are tested as well in random unittests
2015-04-29 13:20:01 -04:00
kwolekr 7220ca906d Tests: Modularize unit testing
Split unit tests into separate files under src/unittest/
Give better unittest diagnostics
Clean up some code
2015-04-26 15:08:54 -04:00
Craig Robbins 9527984dbc Move globals from main.cpp to more sane locations
Move debug streams to log.cpp|h

Move GUI-related globals to clientlauncher

Move g_settings and g_settings_path to settings.cpp|h

Move g_menuclouds to clouds.cpp|h

Move g_profiler to profiler.cpp|h
2015-04-01 23:04:25 +10:00
Aaron Suen 6d61375cc7 Clean scaling pre-filter for formspec/HUD. 2015-04-01 00:01:05 -04: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