]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
android: Update the README for the build via NDK
authorTobias Brunner <tobias@strongswan.org>
Mon, 20 Feb 2023 13:11:29 +0000 (14:11 +0100)
committerTobias Brunner <tobias@strongswan.org>
Mon, 20 Feb 2023 13:11:59 +0000 (14:11 +0100)
src/frontends/android/README.ndk

index 22150dd556eb5df1989cb4415b28aa1443ba286a..a744c0efba3f185aa41ab5565ee309627c76e30a 100644 (file)
@@ -1,14 +1,29 @@
 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):
+ - 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 is also possible to use the sources from a different directory (e.g. an
+   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 OpenSSL or BoringSSL sources are expected in app/src/main/jni/openssl.
-   Since the sources need to be changed to be built on Android (and especially
-   in the NDK) we provide a modified mirror of the official Android repositories
-   on git.strongswan.org.
+ - 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.