android: make code 're-entrant' - i.e. NativeActivity can restart the program without...
[freeglut] / README.android
index d3770bb..808ffec 100644 (file)
@@ -1,24 +1,7 @@
 Status
 ======
 
-Done:
-- Initialize context with EGL
-- Keyboard support
-- Mouse support
-- Virtual keypad (on touchscreen)
-- Extract assets in cache dir on start-up
-
-TODO:
-- Open new windows (if that's possible)
-- Joystick support (xperia play...)
-- Display translucent keys on virtual keypad
-- API to detect touchscreen presence
-- API to disable assets extract
-- GLES2 support for geometry and menus
-  (possibly also GLES1)
-- Generate freeglut_std.h with GLES1 or GLES2 or non-ES headers
-- Make EGL support reusable by Mesa X11
-- ...
+See http://freeglut.sourceforge.net/docs/android.php
 
 
 Create a module compatible with the NDK build-system
@@ -27,7 +10,7 @@ Create a module compatible with the NDK build-system
 - Use your own cross-compiler for Android, or export the one from the
   NDK:
 
-  /usr/src/android-ndk-r7/build/tools/make-standalone-toolchain.sh \
+  /usr/src/android-ndk-r7c/build/tools/make-standalone-toolchain.sh \
     --platform=android-9 \
     --install-dir=/usr/src/ndk-standalone-9
 
@@ -35,28 +18,31 @@ Create a module compatible with the NDK build-system
 
   PATH=/usr/src/ndk-standalone-9/bin:$PATH
   cd /usr/src/freeglut-3.0.0/
+  mkdir cross-android-module-gles2/
+  cd cross-android-module-gles2/
   cmake \
-    -D CMAKE_TOOLCHAIN_FILE=android_toolchain.cmake \
-    -D CMAKE_INSTALL_PREFIX=/freeglut \
+    -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
+    -D CMAKE_INSTALL_PREFIX=/freeglut-gles2 \
+    -D CMAKE_BUILD_TYPE=Debug \
     -D FREEGLUT_GLES2=ON \
     -D FREEGLUT_BUILD_DEMOS=NO \
-    .
+    ..
   make -j4
   make install DESTDIR=$(pwd)
 
 - Copy Android.mk in the new 'freeglut/' directory :
 
-  cp android/Android.mk freeglut/
+  cp ../android/gles2/Android.mk freeglut-gles2/
 
 - Reference this module in your jni/Android.mk:
 
-  LOCAL_STATIC_LIBRARIES := ... freeglut
+  LOCAL_STATIC_LIBRARIES := ... freeglut-gles2
   ...
-  $(call import-module,freeglut)
+  $(call import-module,freeglut-gles2)
 
 - You now can point your NDK_MODULE_PATH to this module!
 
-  ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/freeglut/
+  ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/cross-android-module/freeglut-gles2/
 
 
 Compile FreeGLUT for a traditional cross-compiler environment
@@ -65,29 +51,34 @@ Compile FreeGLUT for a traditional cross-compiler environment
 - Use your own cross-compiler for Android, or export the one from the
   NDK:
 
-  /usr/src/android-ndk-r7/build/tools/make-standalone-toolchain.sh \
+  /usr/src/android-ndk-r7c/build/tools/make-standalone-toolchain.sh \
     --platform=android-9 \
     --install-dir=/usr/src/ndk-standalone-9
 
 - Compile FreeGLUT and install it in your Android cross-compiler path:
 
-
   PATH=/usr/src/ndk-standalone-9/bin:$PATH
   cd /usr/src/freeglut-3.0.0/
+  mkdir cross-android-toolchain-gles2/
+  cd cross-android-toolchain-gles2/
   cmake \
-    -D CMAKE_TOOLCHAIN_FILE=android_toolchain.cmake \
-    -D CMAKE_INSTALL_PREFIX=/usr/src/ndk-standalone-9 \
+    -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
+    -D CMAKE_INSTALL_PREFIX=/usr/src/ndk-standalone-9/sysroot/usr \
+    -D CMAKE_BUILD_TYPE=Debug \
     -D FREEGLUT_GLES2=ON \
     -D FREEGLUT_BUILD_DEMOS=NO \
-    .
+    ..
   make -j4
   make install
+  # Only static for now:
+  rm -f /usr/src/ndk-standalone-9/sysroot/usr/lib/libfreeglut-gles?.so*
 
 - Compile your own project.
 
 For instance if you use the autotools:
 
   PATH=/usr/src/ndk-standalone-9/bin:$PATH
+  export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
   ./configure --host=arm-linux-androideabi --prefix=/somewhere
   make
   make install
@@ -95,11 +86,16 @@ For instance if you use the autotools:
 If you use CMake, you may want to copy our Android toolchain
 'android_toolchain.cmake':
 
+  PATH=/usr/src/ndk-standalone-9/bin:$PATH
+  export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
   cp .../android_toolchain.cmake .
+  mkdir cross-android/
+  cd cross-android/
   cmake \
-    -D CMAKE_TOOLCHAIN_FILE=android_toolchain.cmake
+    -D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
     -D CMAKE_INSTALL_PREFIX=/somewhere \
+    -D CMAKE_BUILD_TYPE=Debug \
     -D MY_PROG_OPTION=something ... \
-    .
+    ..
   make -j4
   make install