Android: unify toolchain and module builds
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1296 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
bdfe2f03f4
commit
8aac2a48ce
7
.gitignore
vendored
7
.gitignore
vendored
@ -15,11 +15,8 @@ freeglut/freeglut/config.status
|
|||||||
freeglut/freeglut/config.sub
|
freeglut/freeglut/config.sub
|
||||||
freeglut/freeglut/configure
|
freeglut/freeglut/configure
|
||||||
freeglut/freeglut/configure.scan
|
freeglut/freeglut/configure.scan
|
||||||
freeglut/freeglut/cross-android
|
freeglut/freeglut/cross-android-gles1
|
||||||
freeglut/freeglut/cross-android-module-gles1
|
freeglut/freeglut/cross-android-gles2
|
||||||
freeglut/freeglut/cross-android-module-gles2
|
|
||||||
freeglut/freeglut/cross-android-toolchain-gles1
|
|
||||||
freeglut/freeglut/cross-android-toolchain-gles2
|
|
||||||
freeglut/freeglut/cross-woe
|
freeglut/freeglut/cross-woe
|
||||||
freeglut/freeglut/debugfiles.list
|
freeglut/freeglut/debugfiles.list
|
||||||
freeglut/freeglut/debugsources.list
|
freeglut/freeglut/debugsources.list
|
||||||
|
@ -4,52 +4,11 @@ Status
|
|||||||
See http://freeglut.sourceforge.net/docs/android.php
|
See http://freeglut.sourceforge.net/docs/android.php
|
||||||
|
|
||||||
|
|
||||||
Create a module compatible with the NDK build-system
|
Compile FreeGLUT
|
||||||
====================================================
|
================
|
||||||
|
|
||||||
- Use your own cross-compiler for Android, or export the one from the
|
- Use your own cross-compiler for Android, or export the one from the
|
||||||
NDK:
|
Android NDK:
|
||||||
|
|
||||||
/usr/src/android-ndk-r7c/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/
|
|
||||||
mkdir cross-android-module-gles2/
|
|
||||||
cd cross-android-module-gles2/
|
|
||||||
cmake \
|
|
||||||
-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/gles2/Android.mk freeglut-gles2/
|
|
||||||
|
|
||||||
- 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 this module!
|
|
||||||
|
|
||||||
ndk-build NDK_MODULE_PATH=/usr/src/freeglut-3.0.0/cross-android-module/freeglut-gles2/
|
|
||||||
|
|
||||||
|
|
||||||
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-r7c/build/tools/make-standalone-toolchain.sh \
|
/usr/src/android-ndk-r7c/build/tools/make-standalone-toolchain.sh \
|
||||||
--platform=android-9 \
|
--platform=android-9 \
|
||||||
@ -58,9 +17,9 @@ Compile FreeGLUT for a traditional cross-compiler environment
|
|||||||
- Compile FreeGLUT and install it in your Android cross-compiler path:
|
- Compile FreeGLUT and install it in your Android cross-compiler path:
|
||||||
|
|
||||||
PATH=/usr/src/ndk-standalone-9/bin:$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-toolchain-gles2/
|
mkdir cross-android-gles2/
|
||||||
cd cross-android-toolchain-gles2/
|
cd cross-android-gles2/
|
||||||
cmake \
|
cmake \
|
||||||
-D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
|
-D CMAKE_TOOLCHAIN_FILE=../android_toolchain.cmake \
|
||||||
-D CMAKE_INSTALL_PREFIX=/usr/src/ndk-standalone-9/sysroot/usr \
|
-D CMAKE_INSTALL_PREFIX=/usr/src/ndk-standalone-9/sysroot/usr \
|
||||||
@ -73,7 +32,9 @@ Compile FreeGLUT for a traditional cross-compiler environment
|
|||||||
# Only static for now:
|
# Only static for now:
|
||||||
rm -f /usr/src/ndk-standalone-9/sysroot/usr/lib/libfreeglut-gles?.so*
|
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:
|
For instance if you use the autotools:
|
||||||
|
|
||||||
@ -88,7 +49,7 @@ If you use CMake, you may want to copy our Android toolchain
|
|||||||
|
|
||||||
PATH=/usr/src/ndk-standalone-9/bin:$PATH
|
PATH=/usr/src/ndk-standalone-9/bin:$PATH
|
||||||
export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
|
export PKG_CONFIG_PATH=/usr/src/ndk-standalone-9/sysroot/usr/share/pkgconfig
|
||||||
cp .../android_toolchain.cmake .
|
cp .../freeglut-x.x/android_toolchain.cmake .
|
||||||
mkdir cross-android/
|
mkdir cross-android/
|
||||||
cd cross-android/
|
cd cross-android/
|
||||||
cmake \
|
cmake \
|
||||||
@ -99,3 +60,24 @@ If you use CMake, you may want to copy our Android toolchain
|
|||||||
..
|
..
|
||||||
make -j4
|
make -j4
|
||||||
make install
|
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=.
|
||||||
|
Reference in New Issue
Block a user