/usr/share/crawl/docs/develop/android.txt is in crawl-common 2:0.21.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | This document explains how to build DCSS for Android, and some of the
technical details.
Introduction
------------
DCSS for Android employs SDL2's native support for Android applications;
it is currently built against a distribution of SDL2 v2.0.3 with some
homegrown patches to allow it to interact with high resolution screens
correctly. As with most Android applications, the build process is
somewhat different from the traditional "./configure; make; make install"
that you might expect.
The Android port is known to build with the NDK's GCC 4.8 toolchain and
clang toolchains.
Build Process
-------------
* Get the latest Android SDK from http://developer.android.com/sdk/index.html
* Run "android" and fetch the files for the android-12 platform
* Get the latest Android NDK, r10c at time of writing:
http://developer.android.com/sdk/ndk/index.html
* Configure your PATH. Assuming you've installed the SDK in $SDK and the
NDK in $NDK: export PATH=$SDK/tools:$SDK/platform-tools:$NDK:$PATH
* Ensure that you have all of the dependent host libraries required to
use the SDK, NDK and build crawl's host tools. For a recent Ubuntu host
these are:
- ia32-libs
- build-essential
- libpng-dev
* If you don't have them already, you need Oracle's JDK and ant installed.
* Run "NDK_TOOLCHAIN_VERSION=<version> make ANDROID=1 android", where
<version> is either a gcc version or clang (or clang-<version>).
Project Structure
-----------------
At a high level, the SDL library and DCSS are laid out on disk as
follows:
crawl-ref/source/android-project
bin/ # Where the final .apk is generated.
src/ # Java code that wraps the native game and libs
jni/ # Where contrib libraries live, including SDL.
Technical Notes
---------------
* The external libraries that Crawl needs to build against are pulled from
the same "contrib" repositories that Win32 and OS X builds of Crawl
use.
* There are lots of Android specifics in the Makefile, because (a) the
custom toolchain needs lots of CFLAGS and LDFLAGS to work properly
and (b) the target paths for the data directory are completely
different to where the "executable" lives on Android, and also
completely different to the host OS.
* The majority of the changes to the DCSS code are changing GLES calls
so that they work correctly with Android's GLES implementation and
integrate properly with the Java-side SDL.
* The rltiles/ tools get compiled using native tools, not the NDK ones.
|