jni: Add all dependencies and their compilation scripts

Compilation has been verified for all target platforms using a slightly
modified version of CrystaX NDK 10.1.0 (the issue has been resolved with
not yet release 10.2.0)

Change-Id: I99f6c270ae8732adfa402d75ba04f42b179a1a9b
diff --git a/.vagrant/Vagrantfile b/.vagrant/Vagrantfile
new file mode 100644
index 0000000..7115d2b
--- /dev/null
+++ b/.vagrant/Vagrantfile
@@ -0,0 +1,53 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+VAGRANTFILE_API_VERSION = "2"
+
+$script = <<SCRIPT
+sudo apt-get install -y build-essential git openjdk-7-jdk unzip
+
+# SDK binaries need i386 libraries
+sudo dpkg --add-architecture i386;
+sudo apt-get update -qq; sudo apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
+
+wget -q https://www.crystax.net/download/crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+tar jxf crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+rm crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \\;
+
+wget -q http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
+tar zxf android-sdk_r24.0.2-linux.tgz
+rm android-sdk_r24.0.2-linux.tgz
+
+SDK_TOOLS_VERSION=24.0.2
+BUILD_TOOLS_VERSION=21.1.2
+COMPILE_SDK_VERSION=21
+
+export ANDROID_HOME=`pwd`/android-sdk-linux
+export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
+
+echo "y" | android update sdk --filter platform-tools,build-tools-$BUILD_TOOLS_VERSION,android-$COMPILE_SDK_VERSION,extra-android-support,extra-android-m2repository,extra-google-m2repository --no-ui --all --force
+echo "y" | android update sdk --filter "android-19" --no-ui --all --force
+
+wget -q https://services.gradle.org/distributions/gradle-2.2.1-bin.zip
+unzip gradle-2.2.1-bin.zip
+rm gradle-2.2.1-bin.zip
+export PATH=$PATH:`pwd`/gradle-2.2.1/bin
+
+echo sdk.dir=`pwd`/android-sdk-linux > local.properties
+echo ndk.dir=`pwd`/crystax-ndk-10.1.0 >> local.properties
+SCRIPT
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  config.vm.box = "ubuntu/trusty64"
+
+  config.vm.provision "shell", privileged: false, inline: $script
+
+  config.vm.provider "virtualbox" do |vb|
+    # Don't boot with headless mode
+    vb.gui = false
+
+    # Use VBoxManage to customize the VM. For example to change memory:
+    vb.customize ["modifyvm", :id, "--memory", "4048", "--cpus", "4"]
+  end
+end