DEADSOFTWARE

de9cb1bab91ac03abe7e57b9357b7afb63e6385e
[d2df-sdl.git] / android / README
1 D2DF-SDL for ANDROID
2 --------------------
4 Doom 2D Forever ported to Android 4.1+.
6 Building
7 --------
9 Requirements:
10 * Android SDK build-tools >= 19.1.0;
11 * Android SDK platforms >= android-16;
12 * Android NDK >= r16b;
13 * Open JDK >= 8;
14 * FPC >= 3.0.4;
15 * SDL >= 2.0.7;
16 * SDL_mixer >= 2.0;
17 * libenet >= 1.3.13;
18 * nanoGL.
20 D2DF uses special version of nanoGL ( https://github.com/DeaDDooMER/nanogl ) with some added functions.
21 Build all shared libraries using NDK toolchain and put into directory ./ass/lib/armeabi-v7a/.
22 Also you need to build FPC crosscompiler ( http://wiki.freepascal.org/Android ).
23 Put game resources into direcotor resources/ (or install it manually into external/internal storage).
25 Generate keys:
26 ```
27 keytool -genkey -validity 10000 \
28 -dname "CN=AndroidDebug, O=Android, C=US" \
29 -keystore d2df.keystore \
30 -storepass android \
31 -keypass android \
32 -alias androiddebugkey \
33 -keyalg RSA \
34 -keysize 2048 \
35 -v
36 ```
38 Build D2DF:
39 ```
40 rm -rf tmp
41 mkdir -p tmp
42 cd ../src/game
43 ppcrossarm \
44 -g -gl -dUSE_SDLMIXER -dUSE_NANOGL -O3 \
45 -Tandroid \
46 -Cparmv7a \
47 -Cfvfpv3 \
48 -Fi../lib/vampimg \
49 -Fi../lib/vampimg/JpegLib \
50 -Fi../lib/vampimg/ZLib \
51 -Fu../lib/vampimg \
52 -Fu../lib/vampimg/JpegLib \
53 -Fu../lib/vampimg/ZLib \
54 -FU../../android/tmp \
55 -FE../../android/ass/lib/armeabi-v7a \
56 -Fl../../android/ass/lib/armeabi-v7a \
57 -olibDoom2DF.so \
58 Doom2DF.lpr
59 ```
61 Build APK and sign it:
62 ```
63 rm -rf bin obj gen
64 mkdir -p bin obj gen resources
65 aapt package -f -m -S res -J gen -M AndroidManifest.xml -I ${ANDROID_JAR}
66 javac -source 1.6 -target 1.6 -d obj -bootclasspath ${ANDROID_JAR} -sourcepath src `find src -name '*.java'`
67 dx --dex --output=bin/classes.dex obj
68 aapt package -f \
69 -M AndroidManifest.xml \
70 -S res \
71 -J gen \
72 -I ${ANDROID_JAR} \
73 -F bin/d2df.unsigned.apk \
74 -A resources
75 bin ass
76 jarsigner -sigalg SHA1withRSA -digestalg SHA1 \
77 -keystore d2df.keystore \
78 -storepass android \
79 -keypass android \
80 -signedjar bin/d2df.signed.apk \
81 bin/d2df.unsigned.apk androiddebugkey
82 ```
84 Where ${ANDROID_JAR} is path to android.jar file. Typically placed in ~/Android/android-sdk/platforms/android-16/android.jar.