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/android
$ ./configure-android --disable-sound --disable-oss --disable-video --enable-ext-sound --disable-speex-aec --disable-g711-codec --disable-l16-codec --disable-gsm-codec --disable-g722-codec --disable-g7221-codec --disable-speex-codec --disable-ilbc-codec --disable-sdl --disable-ffmpeg --disable-v4l

$ make dep && make
$ popd


Generate dbus interface
$ ./make-glue.sh


$ 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.
