X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=README.android;h=ec8b32dbfc554768831df18e3e342931f1ee5b04;hb=a98dd465e59abd3d295aaab17363e5a5f8e5c6b4;hp=d3770bb98e540e094700834117a96970b1a074c1;hpb=851ee4baf10f5179c6136f3153a68c478cbc7d18;p=freeglut diff --git a/README.android b/README.android index d3770bb..ec8b32d 100644 --- a/README.android +++ b/README.android @@ -1,93 +1,45 @@ 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 -- ... - - -Create a module compatible with the NDK build-system -==================================================== +See http://freeglut.sourceforge.net/docs/android.php -- 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 \ - --platform=android-9 \ - --install-dir=/usr/src/ndk-standalone-9 - -- Build FreeGLUT with a '/freeglut' prefix : - - PATH=/usr/src/ndk-standalone-9/bin:$PATH - cd /usr/src/freeglut-3.0.0/ - cmake \ - -D CMAKE_TOOLCHAIN_FILE=android_toolchain.cmake \ - -D CMAKE_INSTALL_PREFIX=/freeglut \ - -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/ - -- Reference this module in your jni/Android.mk: - - LOCAL_STATIC_LIBRARIES := ... freeglut - ... - $(call import-module,freeglut) -- You now can point your NDK_MODULE_PATH to this module! - - ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/freeglut/ - - -Compile FreeGLUT for a traditional cross-compiler environment -============================================================= +Compile FreeGLUT +================ - Use your own cross-compiler for Android, or export the one from the - NDK: + Android 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/ + cd /usr/src/freeglut-x.x/ + mkdir cross-android-gles2/ + cd cross-android-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. + +Compile your own project using common build systems +=================================================== 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 +47,37 @@ For instance if you use the autotools: If you use CMake, you may want to copy our Android toolchain 'android_toolchain.cmake': - cp .../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 .../freeglut-x.x/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 + + +Compile your own project using the NDK build-system +=================================================== + +- Create a module hierarchy pointing to FreeGLUT, with our Android.mk: + + mkdir freeglut-gles2/ + cp .../freeglut-x.x/android/gles2/Android.mk freeglut-gles2/ + ln -s /usr/src/ndk-standalone-9/sysroot/usr/include freeglut-gles2/include + ln -s /usr/src/ndk-standalone-9/sysroot/usr/lib freeglut-gles2/lib + +- Reference this module in your jni/Android.mk: + + LOCAL_STATIC_LIBRARIES := ... freeglut-gles2 + ... + $(call import-module,freeglut-gles2) + +- You now can point your NDK_MODULE_PATH to the directory containing the module: + + ndk-build NDK_MODULE_PATH=.