This repository is meant for the porting of SFLphone to Android.


To build SFLphone and all its dependencies, make sure that Android's NDK and SDK
are properly installed on your system. 

You have also to make sure that the following environment variables are defined:

export ANDROID_NDK=$HOME/path/to/android-ndk-r*b
export ANDROID_SDK=$HOME/path/to/android-sdk-linux

The path to the required Android's build executable must be also specified:

export PATH=$PATH:$ANDROID_NDK

BUILD
-----
install swig-2.0.6 or later and python-2.7 or later on your system

$ cd sflphone-android

Check that following files are executable:
  jni/sflphone/daemon/src/JavaJNI2CJNI_Load.py
  make-swig.sh

Compile pjsip-android
$ pushd jni/pjproject-android/
$ ./configure-android 

$ make dep && make
$ popd


Generate dbus interface
$ ./make-swig.sh

Compile libsndfile-1.0.25
$ pushd jni/libsndfile-1.0.25/
$ ./configure --disable-alsa --disable-external-libs
$ popd


$ ndk-build -j4

Check that no errors occurred. In particular, following files should have been generated by make-swig.sh:
  sflphoneservice_loader.c
  callmanager_wrap.cpp
  sflphoneservice.java
  sflphoneserviceJNI.java
  ManagerImpl.java


Add compatibility library to libs folder
$ cp $ANDROID_SDK/extras/android/support/v13/android-support-v13.jar ./libs/


Then build android project with your favorite JDK: eclipse or ant.
