From 0073c2171ed70ef3585c9e5354c9c5439a7a2698 Mon Sep 17 00:00:00 2001 From: pelya Date: Wed, 2 Feb 2011 15:22:29 +0000 Subject: [PATCH] Added back support for NDK r4b in launchConfigure.sh script --- project/jni/application/setEnvironment-r4b.sh | 79 +++++++++++++++++ project/jni/application/setEnvironment-r5b.sh | 88 +++++++++++++++++++ project/jni/application/setEnvironment.sh | 83 ++--------------- project/jni/application/src | 2 +- project/jni/launchConfigureLib.sh | 1 + 5 files changed, 175 insertions(+), 78 deletions(-) create mode 100755 project/jni/application/setEnvironment-r4b.sh create mode 100755 project/jni/application/setEnvironment-r5b.sh diff --git a/project/jni/application/setEnvironment-r4b.sh b/project/jni/application/setEnvironment-r4b.sh new file mode 100755 index 000000000..61a87cb4f --- /dev/null +++ b/project/jni/application/setEnvironment-r4b.sh @@ -0,0 +1,79 @@ +#!/bin/sh + +IFS=' +' + +MYARCH=linux-x86 +if uname -s | grep -i "linux" > /dev/null ; then + MYARCH=linux-x86 +fi +if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=darwin-x86 +fi +if uname -s | grep -i "windows" > /dev/null ; then + MYARCH=windows-x86 +fi + +NDK=`which ndk-build` +NDK=`dirname $NDK` +GCCVER=4.4.0 +PLATFORMVER=android-8 +LOCAL_PATH=`dirname $0` +LOCAL_PATH=`cd $LOCAL_PATH && pwd` +STL_INCLUDE="-I$LOCAL_PATH/../stlport/stlport -fno-exceptions -fno-rtti" +STL_LIB="$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so $LOCAL_PATH/../../obj/local/armeabi/libstlport.a" +if [ -n "`echo $NDK | grep '[-]crystax'`" ] ; then + STL_INCLUDE="-fexceptions -frtti" + STL_LIB="-lstdc++" +fi + +APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_SHARED_LIBS=$( +echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do + STATIC=`echo $APP_AVAILABLE_STATIC_LIBS | grep "\\\\b$LIB\\\\b"` + if [ "$LIB" = "application" ] ; then true + elif [ "$LIB" = "sdl_main" ] ; then true + elif [ "$LIB" = "stlport" ] ; then true + elif [ -n "$STATIC" ] ; then true + else + echo $LIB + fi +done +) + +CFLAGS="-I$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/include \ +-fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums \ +-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID \ +-Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -O2 \ +-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ +-Wa,--noexecstack -DNDEBUG -g -D__sF=__SDL_fake_stdout \ +-I$LOCAL_PATH/../sdl-1.2/include $STL_INCLUDE \ +`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" + +LDFLAGS="-nostdlib -Wl,-soname,libapplication.so -Wl,-shared,-Bsymbolic \ +-Wl,--whole-archive -Wl,--no-whole-archive \ +$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/lib/gcc/arm-eabi/4.4.0/libgcc.a \ +`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \ +$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \ +$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \ +-Wl,--no-undefined -Wl,-z,noexecstack \ +-L$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \ +-lGLESv1_CM -ldl -llog -lz \ +-Wl,-rpath-link=$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \ +-L$LOCAL_PATH/../../obj/local/armeabi $STL_LIB" + +env PATH=$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin:$LOCAL_PATH:$PATH \ +CFLAGS="$CFLAGS" \ +CXXFLAGS="$CFLAGS" \ +LDFLAGS="$LDFLAGS" \ +CC="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \ +CXX="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-g++" \ +RANLIB="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ranlib" \ +LD="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \ +AR="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ar" \ +CPP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-cpp $CFLAGS" \ +NM="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-nm" \ +AS="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-as" \ +STRIP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-strip" \ +"$@" diff --git a/project/jni/application/setEnvironment-r5b.sh b/project/jni/application/setEnvironment-r5b.sh new file mode 100755 index 000000000..d1ef08f4b --- /dev/null +++ b/project/jni/application/setEnvironment-r5b.sh @@ -0,0 +1,88 @@ +#!/bin/sh + +IFS=' +' + +MYARCH=linux-x86 +if uname -s | grep -i "linux" > /dev/null ; then + MYARCH=linux-x86 +fi +if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=darwin-x86 +fi +if uname -s | grep -i "windows" > /dev/null ; then + MYARCH=windows-x86 +fi + +NDK=`which ndk-build` +NDK=`dirname $NDK` + +echo NDK $NDK +GCCPREFIX=arm-linux-androideabi +GCCVER=4.4.3 +PLATFORMVER=android-8 +LOCAL_PATH=`dirname $0` +LOCAL_PATH=`cd $LOCAL_PATH && pwd` +echo LOCAL_PATH $LOCAL_PATH + +if [ -z "`echo $NDK | grep 'android-ndk-r5b'`" ] ; then + echo "The only supported NDK version is android-ndk-r5b, please download it from http://developer.android.com/" + exit 1 +fi + +APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` +APP_SHARED_LIBS=$( +echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do + STATIC=`echo $APP_AVAILABLE_STATIC_LIBS | grep "\\\\b$LIB\\\\b"` + if [ "$LIB" = "application" ] ; then true + elif [ "$LIB" = "sdl_main" ] ; then true + elif [ "$LIB" = "stlport" ] ; then true + elif [ -n "$STATIC" ] ; then true + else + echo $LIB + fi +done +) + +CFLAGS="\ +-fexceptions -frtti \ +-fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \ +-march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ +-I$NDK/platforms/$PLATFORMVER/arch-arm/usr/include -Wa,--noexecstack \ +-DANDROID -D__sF=__SDL_fake_stdout -DNDEBUG -O2 -g \ +-I$NDK/sources/cxx-stl/gnu-libstdc++/include \ +-I$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include \ +-I$LOCAL_PATH/../sdl-1.2/include \ +`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" + +LDFLAGS="\ +-fexceptions -frtti \ +-Wl,-soname,libapplication.so -shared --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \ +`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libGLESv1_CM.so \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libdl.so \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/liblog.so \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libz.so \ +-L$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi -lstdc++ \ +$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.a \ +-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \ +-L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \ +-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++" + +env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ +CFLAGS="$CFLAGS" \ +CXXFLAGS="$CFLAGS" \ +LDFLAGS="$LDFLAGS" \ +CC="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" \ +CXX="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ +RANLIB="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ +LD="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ +AR="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ +CPP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" \ +NM="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ +AS="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ +STRIP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ +"$@" diff --git a/project/jni/application/setEnvironment.sh b/project/jni/application/setEnvironment.sh index dd308ef8e..471f1d556 100755 --- a/project/jni/application/setEnvironment.sh +++ b/project/jni/application/setEnvironment.sh @@ -1,91 +1,20 @@ #!/bin/sh # Set here your own NDK path if needed -# export PATH=$PATH:~/src/endless_space/android-ndk-r4 +# export PATH=$PATH:~/src/endless_space/android-ndk-r4b +# export PATH=$PATH:~/src/endless_space/android-ndk-r5b IFS=' ' -MYARCH=linux-x86 -if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86 -fi -if uname -s | grep -i "darwin" > /dev/null ; then - MYARCH=darwin-x86 -fi -if uname -s | grep -i "windows" > /dev/null ; then - MYARCH=windows-x86 -fi - NDK=`which ndk-build` NDK=`dirname $NDK` - -echo NDK $NDK -GCCPREFIX=arm-linux-androideabi -GCCVER=4.4.3 -PLATFORMVER=android-8 LOCAL_PATH=`dirname $0` LOCAL_PATH=`cd $LOCAL_PATH && pwd` -echo LOCAL_PATH $LOCAL_PATH -if [ -z "`echo $NDK | grep 'android-ndk-r5b'`" ] ; then - echo "The only supported NDK version is android-ndk-r5b, please download it from http://developer.android.com/" - exit 1 +SCRIPT=setEnvironment-r4b.sh +if [ -n "`echo $NDK | grep android-ndk-r5b`" ]; then + SCRIPT=setEnvironment-r5b.sh fi -APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_AVAILABLE_STATIC_LIBS=`grep 'APP_AVAILABLE_STATIC_LIBS [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` -APP_SHARED_LIBS=$( -echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do - STATIC=`echo $APP_AVAILABLE_STATIC_LIBS | grep "\\\\b$LIB\\\\b"` - if [ "$LIB" = "application" ] ; then true - elif [ "$LIB" = "sdl_main" ] ; then true - elif [ "$LIB" = "stlport" ] ; then true - elif [ -n "$STATIC" ] ; then true - else - echo $LIB - fi -done -) - -CFLAGS="\ --fexceptions -frtti \ --fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \ --march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \ --I$NDK/platforms/$PLATFORMVER/arch-arm/usr/include -Wa,--noexecstack \ --DANDROID -D__sF=__SDL_fake_stdout -DNDEBUG -O2 -g \ --I$NDK/sources/cxx-stl/gnu-libstdc++/include \ --I$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include \ --I$LOCAL_PATH/../sdl-1.2/include \ -`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`" - -LDFLAGS="\ --fexceptions -frtti \ --Wl,-soname,libapplication.so -shared --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \ -`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libGLESv1_CM.so \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libdl.so \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/liblog.so \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libz.so \ --L$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi -lstdc++ \ -$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.a \ --L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \ --L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \ --Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++" - -env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ -CFLAGS="$CFLAGS" \ -CXXFLAGS="$CFLAGS" \ -LDFLAGS="$LDFLAGS" \ -CC="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" \ -CXX="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ -RANLIB="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ -LD="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \ -AR="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ -CPP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" \ -NM="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ -$@ +$LOCAL_PATH/$SCRIPT "$@" diff --git a/project/jni/application/src b/project/jni/application/src index 40a028993..550b7b622 120000 --- a/project/jni/application/src +++ b/project/jni/application/src @@ -1 +1 @@ -dosbox \ No newline at end of file +openttd \ No newline at end of file diff --git a/project/jni/launchConfigureLib.sh b/project/jni/launchConfigureLib.sh index b7457d036..4badc93e8 100755 --- a/project/jni/launchConfigureLib.sh +++ b/project/jni/launchConfigureLib.sh @@ -2,6 +2,7 @@ # Set here your own NDK path if needed # export PATH=$PATH:~/src/endless_space/android-ndk-r4 +# TODO: this script is for NDK r4b only IFS=' '