mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 15:41:05 +08:00
Merge pull request #4451 from stephan57160/master
Problem: Android build documentation is outdated.
This commit is contained in:
commit
1d3ad106ac
@ -2,32 +2,92 @@
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
You need the Android Native Development Kit (NDK) installed. See
|
The last known NDK is automatically downloaded, if not specified otherwise.
|
||||||
[here](https://developer.android.com/ndk) to download it.
|
|
||||||
|
|
||||||
This project is tested against Android NDK version r25.
|
## Configuration
|
||||||
|
|
||||||
If you installed version r25 all you have to do is to expose the NDK root
|
This project is tested against Android NDK version r25, but should
|
||||||
directory as environment variable, e.g:
|
support older ones too.
|
||||||
|
|
||||||
export ANDROID_NDK_ROOT=$HOME/android-ndk-r25
|
This project uses NDK `android-ndk-r25`, by default, but you can specify
|
||||||
|
a different one:
|
||||||
|
|
||||||
If you installed another version you have to expose the NDK root directory as
|
export NDK_VERSION=android-ndk-r23c
|
||||||
well as the NDK version, e.g:
|
|
||||||
|
|
||||||
export ANDROID_NDK_ROOT=$HOME/android-ndk-r17c
|
If you already have installed your favorite NDK somewhere, all you have to
|
||||||
export NDK_VERSION=android-ndk-r17c
|
do is to export and set NDK_VERSION and ANDROID_NDK_ROOT environment
|
||||||
|
variables, e.g:
|
||||||
|
|
||||||
To specify the minimum sdk version set the environment variable below:
|
export NDK_VERSION=android-ndk-r23b
|
||||||
|
export ANDROID_NDK_ROOT=$HOME/${NDK_VERSION}
|
||||||
|
|
||||||
|
**Important:** ANDROID_NDK_ROOT must be an absolute path !
|
||||||
|
|
||||||
|
If you specify only NDK_VERSION, ANDROID_NDK_ROOT will be automatically set
|
||||||
|
to its default:
|
||||||
|
|
||||||
|
export ANDROID_NDK_ROOT=/tmp/${NDK_VERSION}
|
||||||
|
|
||||||
|
To specify the minimum SDK version set the environment variable below:
|
||||||
|
|
||||||
export MIN_SDK_VERSION=21 # Default value if unset
|
export MIN_SDK_VERSION=21 # Default value if unset
|
||||||
|
|
||||||
To specify the prefix directory set the environment variable below:
|
To specify the build directory set the environment variable below:
|
||||||
|
|
||||||
export ANDROID_BUILD_DIR=./builds/android/prefix/<android_arch> # Default value if unset
|
export ANDROID_BUILD_DIR=${HOME}/android_build
|
||||||
|
|
||||||
|
**Important:** ANDROID_BUILD_ROOT must be an absolute path !
|
||||||
|
|
||||||
|
All libraries will be generated under:
|
||||||
|
|
||||||
|
${ANDROID_BUILD_DIR}/prefix/<arch>/lib
|
||||||
|
|
||||||
|
where <_arch_> is one of `arm`, `arm64`, `x86` or `x86_64`.
|
||||||
|
|
||||||
|
You can also check configuration variables in `build.sh` itself, in its
|
||||||
|
"Configuration & tuning options" comment block.
|
||||||
|
|
||||||
|
The variable CURVE accepts 3 different values:
|
||||||
|
|
||||||
|
"" : LIBZMQ is built without any encryption support.
|
||||||
|
"libsodium" : LIBZMQ is built with LIBSODIUM encryption support (see below).
|
||||||
|
"tweetnacl" : LIBZMQ is build with embedded encryption support.
|
||||||
|
|
||||||
|
## LIBSODIUM
|
||||||
|
|
||||||
|
LIBSODIUM is built along with LIBZMQ, when CURVE="libsodium".
|
||||||
|
|
||||||
|
- If you have your own clone of LIBSODIUM, set LIBSODIUM_ROOT to point to
|
||||||
|
its folder.
|
||||||
|
- If the variable LIBSODIUM_ROOT is not set, LIBZMQ will look for a folder
|
||||||
|
'libsodium' close to his own one.
|
||||||
|
- If no folder 'libsodium' exists, then LIBZMQ will clone LIBSODIUM from its
|
||||||
|
official STABLE branch.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
In the android directory, run:
|
See chapter [Configuration](#configuration) for configuration options and
|
||||||
|
other details.
|
||||||
|
|
||||||
|
Select your prefered parameters:
|
||||||
|
|
||||||
|
export XXX=xxx
|
||||||
|
export YYY=yyy
|
||||||
|
...
|
||||||
|
|
||||||
|
And, in the android directory, run:
|
||||||
|
|
||||||
./build.sh [ arm | arm64 | x86 | x86_64 ]
|
./build.sh [ arm | arm64 | x86 | x86_64 ]
|
||||||
|
|
||||||
|
Parameter selection and the calls to build.sh can be located in a
|
||||||
|
SHELL script, like in ci_build.sh.
|
||||||
|
|
||||||
|
## Dockerfile
|
||||||
|
|
||||||
|
An example of Docker file is provided, for Ubuntu 22.04
|
||||||
|
|
||||||
|
Minimal changes are required to support Debian 9 to 11.
|
||||||
|
|
||||||
|
Minimal changes are required to support CentOS (7 only), Rocky Linux (8 & 9),
|
||||||
|
and many Fedora (22 to 37).
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user