Files
strongswan-ext/src/frontends/android

To build this within the NDK the following things have to be done:

 - By default, the strongSwan sources of the current Git tree are used. They
   have to be prepared first (see HACKING for a list of required tools):

     ./autogen.sh && ./configure && make && make distclean

   It's also possible to use the sources from a different directory (e.g. an
   extracted tarball) by setting strongswan_DIR in app/src/main/jni/Android.mk.

 - The libstrongswan library depends on an Android module called libcrypto_static
   that provides OpenSSL's libcrypto and header files.  To simplify this, the
   build.sh script in the openssl directory can be used to statically build
   libcrypto for all ABIs. The results are placed in app/src/main/jni/openssl.

   The script expects the path to the Android NDK in ANDROID_NDK_ROOT, which is
   something like /path/to/android-ndk-<ver> for standalone NDKs, and something
   like /path/to/android-sdk/ndk/<ver> for side-by-side NDKs.  The path to the
   OpenSSL sources is expected in OPENSSL_SRC (work with OpenSSL 1.1.1 or 3).
   For instance, it may be invoked like this:

     ANDROID_NDK_ROOT=~/android-ndk-<ver> \
     OPENSSL_SRC=~/openssl-<ver> \
     src/frontends/android/openssl/build.sh

   By default, the script uses Docker to compile the library.  However, if the
   necessary build dependencies (jq, make, perl) are installed on the host, this
   can be disabled by defining the NO_DOCKER.  The dependency on jq may be
   avoided by passing a space-separated list of target ABIs via ABIS variable.