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

$ 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

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