summaryrefslogtreecommitdiffstats
path: root/lib/ffts/build_android.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ffts/build_android.sh')
-rwxr-xr-xlib/ffts/build_android.sh80
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