README.android: suggest Debug build + tidy CMake build directories naming
[freeglut] / README.android
1 Status
2 ======
3
4 See http://freeglut.sourceforge.net/docs/android.php
5
6
7 Create a module compatible with the NDK build-system
8 ====================================================
9
10 - Use your own cross-compiler for Android, or export the one from the
11   NDK:
12
13   /usr/src/android-ndk-r7c/build/tools/make-standalone-toolchain.sh \
14     --platform=android-9 \
15     --install-dir=/usr/src/ndk-standalone-9
16
17 - Build FreeGLUT with a '/freeglut' prefix :
18
19   PATH=/usr/src/ndk-standalone-9/bin:$PATH
20   cd /usr/src/freeglut-3.0.0/
21   mkdir cross-android-module-gles2/
22   cd cross-android-module-gles2/
23   cmake \
24     -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
25     -D CMAKE_INSTALL_PREFIX=/freeglut-gles2 \
26     -D CMAKE_BUILD_TYPE=Debug \
27     -D FREEGLUT_GLES2=ON \
28     -D FREEGLUT_BUILD_DEMOS=NO \
29     ..
30   make -j4
31   make install DESTDIR=$(pwd)
32
33 - Copy Android.mk in the new 'freeglut/' directory :
34
35   cp ../android/gles2/Android.mk freeglut-gles2/
36
37 - Reference this module in your jni/Android.mk:
38
39   LOCAL_STATIC_LIBRARIES := ... freeglut-gles2
40   ...
41   $(call import-module,freeglut-gles2)
42
43 - You now can point your NDK_MODULE_PATH to this module!
44
45   ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/cross-android-module/freeglut-gles2/
46
47
48 Compile FreeGLUT for a traditional cross-compiler environment
49 =============================================================
50
51 - Use your own cross-compiler for Android, or export the one from the
52   NDK:
53
54   /usr/src/android-ndk-r7c/build/tools/make-standalone-toolchain.sh \
55     --platform=android-9 \
56     --install-dir=/usr/src/ndk-standalone-9
57
58 - Compile FreeGLUT and install it in your Android cross-compiler path:
59
60   PATH=/usr/src/ndk-standalone-9/bin:$PATH
61   cd /usr/src/freeglut-3.0.0/
62   mkdir cross-android-toolchain-gles2/
63   cd cross-android-toolchain-gles2/
64   cmake \
65     -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
66     -D CMAKE_INSTALL_PREFIX=/usr/src/ndk-standalone-9/sysroot/usr \
67     -D CMAKE_BUILD_TYPE=Debug \
68     -D FREEGLUT_GLES2=ON \
69     -D FREEGLUT_BUILD_DEMOS=NO \
70     ..
71   make -j4
72   make install
73   # Only static for now:
74   rm -f /usr/src/ndk-standalone-9/sysroot/usr/lib/libfreeglut-gles1.so*
75
76 - Compile your own project.
77
78 For instance if you use the autotools:
79
80   PATH=/usr/src/ndk-standalone-9/bin:$PATH
81   export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
82   ./configure --host=arm-linux-androideabi --prefix=/somewhere
83   make
84   make install
85
86 If you use CMake, you may want to copy our Android toolchain
87 'android_toolchain.cmake':
88
89   PATH=/usr/src/ndk-standalone-9/bin:$PATH
90   export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
91   cp .../android_toolchain.cmake .
92   mkdir cross-android/
93   cd cross-android/
94   cmake \
95     -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
96     -D CMAKE_INSTALL_PREFIX=/somewhere \
97     -D CMAKE_BUILD_TYPE=Debug \
98     -D MY_PROG_OPTION=something ... \
99     ..
100   make -j4
101   make install