Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

OLA on Android

From wiki.openlighting.org

Revision as of 12:31, 17 November 2012 by Nomis52 (talk | contribs) (OLA)
Jump to: navigation, search

These are my notes from trying to get OLA working on Android.

Toolchain

Download the ndk. Extract.

~/android-ndk-r8c/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=$HOME/android-ndk-r8c/standalone-toolchain-api9

Setup

We'll do all the work in $HOME/android

mkdir $HOME/android
# where we install libs to
mkdir $HOME/android/root

Setup env variables

export ANDROID_NDK_PATH=$HOME/android-ndk-r7c
export ANDROID_PLATFORM=9
export ANDROID_NDK_STANDALONE_TOOLCHAIN=$ANDROID_NDK_PATH/standalone-toolchain-api$ANDROID_PLATFORM
export CPPFLAGS=""
export LDFLAGS=""
export PATH=$ANDROID_NDK_PATH/android-sdk-linux_x86/tools:$ANDROID_NDK_PATH/android-sdk-linux_x86/platform-tools:$ANDROID_NDK_STANDALONE_TOOLCHAIN/bin:$PATH

Protobuf

cd $HOME/android
wget <protobuf>
tar -zxf <protobuf>
cd protobuf-X.Y.Z
./configure   --host=arm-linux-androideabi   CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-c++ --with-protoc=/opt/local/bin/protoc
make
DESTDIR="$HOME/android make install

TODO: Figure out how to package (or should we statically link to ola?)

UUID

OSSP UUID is quite old (2008) now so it doesn't cross compile well. Instead we'll use the libuuid from e2fsprogs.

Download from http://e2fsprogs.sourceforge.net/

cd $HOME/android
wget <e2fsprogs-url>
tar -zxf <e2fsprogs>
cd e2fsprogs-X.Y.Z
./configure   --host=arm-linux-androideabi   CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-c++ 
# we only want the libuuid bit
cd lib/uuid
make
DESTDIR="$HOME/android make install


OLA

export ac_cv_func_malloc_0_nonnull=yes
export PKG_CONFIG_PATH="$HOME/android/root/use/local/lib/pkgconfig"
./configure --host=arm-linux-androideabi --build=i686-pc-linux-gnu CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-c++ --disable-http --disable-unittests
make