There are two changes in here. First change is to tell Android build
system to use NEON instruction support. Slime already wrote a
NEON-optimized matrix multiplication function which is already in love main
source code (see link below for related commit)
https://bitbucket.org/rude/love/commits/e61734b33581a485743ea79b87d02f8aeb77693e
The problem is that not all ARMv7 devices do support NEON instruction, but
I don't even think if such device exist in 2018 (or even in 2019). ARM64
guarantee NEON instruction support, so it's all good for ARM64.
The second change is to define "HAVE_SOCKLEN_T=1" only when building ARM64.
This is needed because LuaSocket (or enet, I don't remember exactly)
redefines socklen_t and this cause compiler error.
I don't use the buildandroid.sh for this because it forces the host
compiler to 32-bit (-m32), but we do really need 64-bit host compiler to
build LuaJIT for ARM64 (also I'm in Windows).
So, I used Android NDK standalone toolchain then invoke make like this:
make CROSS=aarch64-linux-android- TARGET_SYS=Linux TARGET_CFLAGS="-D__ANDROID_API__=21" amalg
Then the resulting libluajit.a is copied to android/arm64-v8a/libluajit.a
Simplifies the way setSource is handled on Android. It tries to mount
first and if that fails it will copy to memory and mount.
The /sdcard/lovegame fallback is moved to GameActivity.java.
Also a flag is added (mustCacheArchive) that will copy the game.love
file to the cache dir, so it can be mounted directly and not loaded to
memory, which does not work for large .love files.
The Filesystem.cpp change was also submitted to rude/love repo in this
push request: https://bitbucket.org/rude/love/pull-requests/99
Simplifies the way setSource is handled on Android. It tries to mount
first and if that fails it will copy to memory and mount.
The /sdcard/lovegame fallback is moved to GameActivity.java.
Also a flag is added (mustCacheArchive) that will copy the game.love
file to the cache dir, so it can be mounted directly and not loaded to
memory, which does not work for large .love files.
The Filesystem.cpp change was also submitted to rude/love repo in this
push request: https://bitbucket.org/rude/love/pull-requests/99