diff --git a/android/README b/android/README
index e99a2f6342225d6ecd78920a7b44c8ef31af4453..f766dab803dce5b455938bc994446901d3f6591d 100644 (file)
--- a/android/README
+++ b/android/README
D2DF-SDL for ANDROID
--------------------
-Doom 2D Forever ported to Android 4.1+.
+Doom 2D Forever port for Android 4.0+
Building
--------
-Requirements:
-* Android SDK build-tools >= 19.1.0;
-* Android SDK platforms >= android-16;
-* Android NDK >= r16b;
-* Open JDK >= 8;
-* FPC >= 3.0.4;
-* SDL >= 2.0.7;
-* SDL_mixer >= 2.0;
-* libenet >= 1.3.13;
-* nanoGL.
+Tools, files and libraries used for official builds:
+* Android Platform Tools r21 (adb)
+* Android Build Tools r21 (dx, aapt)
+* Android Platform 19 (android.jar)
+* OpenJDK 8 (javac, jarsigner)
+* Crystax NDK 10.3.2
+* FPC 3.2.2
+* SDL 2.0.7
+* SDL_mixer 2.0.4
+* libenet 1.3.17
+* libminiupnpc 2.2.3
+
+Official packages builded for following Android ABIs (fpc options):
+* armeabi (-CpARMV5TE -CfSOFT -CaEABI -O2) [1]
+* armeabi-v7a (-CpARMV7A -CfVFPV3_D16 -CaEABI -O2) [1]
+* arm64-v8a (-CpARMV8 -CfVFP -O2) [2]
+* mips (-CpMIPS32 -CfMIPS3 -O2) [1][3][not tested]
+* x86 (-CpPENTIUM4 -CfSSSE3 -O-) [1][4][5]
+* x86_64 (-CpCOREI -CfSSE42 -O-) [2][4][5][not tested]
+
+[1] 32-bit builds linked with Android Platform 14 shared libraries
+[2] 64-bit builds linked with Android Platform 21 shared libraries
+[3] FPU instruction set can be incorrect for generic builds
+[4] CPU instruction set can be incorrect for generic builds
-D2DF uses special version of nanoGL ( https://github.com/DeaDDooMER/nanogl ) with some added functions.
Build all shared libraries using NDK toolchain and put into directory ./ass/lib/armeabi-v7a/.
Also you need to build FPC crosscompiler ( http://wiki.freepascal.org/Android ).
-Generate keys:
+If you want to pack game resources into APK, add it into directory "resources".
+If you want to play MIDI music, add instruments and timidity.cfg into directory "resources" (you can grab it from https://www.libsdl.org/projects/SDL_mixer/timidity/timidity.tar.gz).
+
+Generate your personal keys (only onece):
```
keytool -genkey -validity 10000 \
- -dname "CN=AndroidDebug, O=Android, C=US" \
- -keystore d2df.keystore \
- -storepass android \
- -keypass android \
- -alias androiddebugkey \
- -keyalg RSA \
- -keysize 2048 \
- -v
+ -dname "CN=AndroidDebug, O=Android, C=US" \
+ -keystore d2df.keystore \
+ -storepass android \
+ -keypass android \
+ -alias androiddebugkey \
+ -keyalg RSA \
+ -keysize 2048 \
+ -v
```
-Build D2DF:
+Build D2DF for android armeabi-v7a:
```
rm -rf tmp
mkdir -p tmp
cd ../src/game
-ppcrossarm \
- -g -gl -dUSE_SDLMIXER -dUSE_NANOGL -O3 \
- -Tandroid \
- -Cparmv7a \
- -Cfvfpv3 \
- -Fi../lib/vampimg \
- -Fi../lib/vampimg/JpegLib \
- -Fi../lib/vampimg/ZLib \
- -Fu../lib/vampimg \
- -Fu../lib/vampimg/JpegLib \
- -Fu../lib/vampimg/ZLib \
- -FU../../android/tmp \
- -FE../../android/ass/lib/armeabi-v7a \
- -Fl../../android/ass/lib/armeabi-v7a \
- -olibDoom2DF.so \
- Doom2DF.lpr
+ppcrossarm -g -gl -O2 \
+ -Tandroid -CpARMV7A -CfVFPV3_D16 -CaEABI \
+ -dUSE_SDL2 -dUSE_SDLMIXER -dUSE_GLES1 -dUSE_MINIUPNPC -O2 \
+ -FU../../android/tmp \
+ -FE../../android/ass/lib/armeabi-v7a \
+ -Fl../../android/ass/lib/armeabi-v7a \
+ -olibDoom2DF.so \
+ Doom2DF.lpr
```
-Build APK and sign it:
+Build APK and sign it (${ANDROID_JAR} are path to android.jar):
```
rm -rf bin obj gen
-mkdir -p bin obj gen
+mkdir -p bin obj gen resources
aapt package -f -m -S res -J gen -M AndroidManifest.xml -I ${ANDROID_JAR}
javac -source 1.6 -target 1.6 -d obj -bootclasspath ${ANDROID_JAR} -sourcepath src `find src -name '*.java'`
dx --dex --output=bin/classes.dex obj
aapt package -f \
- -M AndroidManifest.xml \
- -S res \
- -J gen \
- -I ${ANDROID_JAR} \
- -F bin/d2df.unsigned.apk \
- bin ass
+ -M AndroidManifest.xml \
+ -S res \
+ -J gen \
+ -I ${ANDROID_JAR} \
+ -F bin/d2df.unsigned.apk \
+ -A resources
+ bin ass
jarsigner -sigalg SHA1withRSA -digestalg SHA1 \
- -keystore d2df.keystore \
- -storepass android \
- -keypass android \
- -signedjar bin/d2df.signed.apk \
- bin/d2df.unsigned.apk androiddebugkey
+ -keystore d2df.keystore \
+ -storepass android \
+ -keypass android \
+ -signedjar bin/d2df.signed.apk \
+ bin/d2df.unsigned.apk androiddebugkey
```
-Where ${ANDROID_JAR} is path to android.jar file. Typically placed in ~/Android/android-sdk/platforms/android-16/android.jar.
+Install APK on your device via adb:
+```
+adb install -r bin/d2df.signed.apk
+```