Drives the OpenSSL cross-compile + the OTP crypto NIF static archive
for one target — replaces running scripts/release/openssl/<plat>.sh
and scripts/release/openssl/build_crypto_static_<plat>.sh in
sequence.
mix mob.release.openssl android_arm64 # one target
mix mob.release.openssl android_arm32
mix mob.release.openssl ios_sim
mix mob.release.openssl ios_device
mix mob.release.openssl all # all four, sequentiallyWhat runs
For each target:
MobDev.Release.OpenSSL.build/2— cross-compile OpenSSL 3.x, produces<prefix>/lib/libcrypto.a+ headers.MobDev.Release.OpenSSL.CryptoNif.build/2— compile OTP's crypto NIF C sources with-DSTATIC_ERLANG_NIF, archive as<otp_src>/lib/crypto/priv/lib/<arch>/crypto.a, verify thecrypto_nif_initsymbol is exported.
Both steps are required for the release tarball (handled in iter 4
by mix mob.release.tarball); this task just produces the two
artefacts and stops.
Options
--openssl-src PATH— OpenSSL source checkout. Default:$OPENSSL_SRCenv or~/code/openssl.--otp-src PATH— OTP source checkout. Default:$OTP_SRCenv or~/code/otp.--prefix PATH— OpenSSL install prefix. Default per-target:/tmp/openssl-<target>.--ndk-root PATH— Android NDK root (Android targets only). Default:~/Library/Android/sdk/ndk/<recommended-version>.
Errors
Failure produces a tagged MobDev.Release.Errors tuple formatted
via Mix.raise/1. Common failure modes:
precondition failed — OPENSSL_SRC missing— clone openssl/opensslprecondition failed — Android NDK not at <path>— check NDK installprecondition failed — iOS iphonesimulator SDK not available— runxcode-select --installcommand failed (exit N)— actual tool error, output in the raised message