diff options
Diffstat (limited to 'lib/ffts/build_android.sh')
| -rwxr-xr-x | lib/ffts/build_android.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/ffts/build_android.sh b/lib/ffts/build_android.sh new file mode 100755 index 0000000..38e9d2c --- /dev/null +++ b/lib/ffts/build_android.sh @@ -0,0 +1,80 @@ +#!/bin/sh +# Compiles ffts for Android +# Make sure you have NDK_ROOT defined in .bashrc or .bash_profile +# Modify INSTALL_DIR to suit your situation + +INSTALL_DIR="`pwd`/java/android/bin" + +PLATFORM=android-8 +TOOL="4.6" + +case $(uname -s) in + Darwin) + CONFBUILD=i386-apple-darwin`uname -r` + HOSTPLAT=darwin-x86 + ;; + Linux) + CONFBUILD=x86-unknown-linux + HOSTPLAT=linux-`uname -m` + ;; + *) echo $0: Unknown platform; exit +esac + +case arm in + arm) + TARGPLAT=arm-linux-androideabi + ARCH=arm + CONFTARG=arm-eabi + ;; + x86) + TARGPLAT=x86 + ARCH=x86 + CONFTARG=x86 + ;; + mips) + ## probably wrong + TARGPLAT=mipsel-linux-android + ARCH=mips + CONFTARG=mips + ;; + *) echo $0: Unknown target; exit +esac + +: ${NDK_ROOT:?} + +echo "Using: $NDK_ROOT/toolchains/${TARGPLAT}-${TOOL}/prebuilt/${HOSTPLAT}/bin" + +export PATH="$NDK_ROOT/toolchains/${TARGPLAT}-${TOOL}/prebuilt/${HOSTPLAT}/bin/:$PATH" +export SYS_ROOT="$NDK_ROOT/platforms/${PLATFORM}/arch-${ARCH}/" +export CC="${TARGPLAT}-gcc --sysroot=$SYS_ROOT" +export LD="${TARGPLAT}-ld" +export AR="${TARGPLAT}-ar" +export RANLIB="${TARGPLAT}-ranlib" +export STRIP="${TARGPLAT}-strip" +export CFLAGS="-Os" + +mkdir -p $INSTALL_DIR +./configure --enable-neon --build=${CONFBUILD} --host=${CONFTARG} --prefix=$INSTALL_DIR LIBS="-lc -lgcc" + +make clean +make +make install + +if [ -z "$ANDROID_HOME" ] ; then + echo "" + echo " No ANDROID_HOME defined" + echo " Android JNI interfaces will not be built" + echo +else + echo + echo "Using android_home ${ANDROID_HOME}" + echo + ( cd java/android ; ${ANDROID_HOME}/tools/android update lib-project -p . ) || exit 1 + ( cd java/android/jni ; ${NDK_ROOT}/ndk-build V=1 ) || exit 1 + ( cd java/android ; ant release ) || exit 1 + echo + echo "Android library project location:" + echo " `pwd`/java/android" + echo +fi +exit 0 |
