Drives MobDev.Release.OTP.build/2 from the CLI. Replaces the
three scripts/release/xcompile_*.sh scripts plus the misplaced
scripts/release/openssl/_build_otp_android_arm64.sh.
mix mob.release.otp android_arm64 # one target
mix mob.release.otp android_arm32
mix mob.release.otp ios_sim
mix mob.release.otp ios_device
mix mob.release.otp all # all four, sequentiallyWhat runs
For each target:
make distclean(tolerated — first-time builds have nothing)./otp_build configure --xcomp-conf=<conf> <ssl-flags>./otp_build boot(the long step — 5–10 minutes per target)rm -rf <release_root>then install:- Android:
./otp_build release -a <release_root> - iOS:
make release RELEASE_ROOT=<release_root>
- Android:
- Verify per-target sanity (erts-<vsn> dir exists, Android also
checks
lib/{crypto,public_key,ssl}-*apps were produced).
Options
--otp-src PATH— OTP source checkout. Default:$OTP_SRCenv or~/code/otp.--openssl-prefix PATH— pre-built OpenSSL install. Required for Android targets; ignored for iOS.--release-root PATH— install destination. Default per-target.--ndk-root PATH— Android NDK root override.
Errors
All failures format via MobDev.Release.Errors.format/1 and raise
through Mix.raise/1. Common cases:
precondition failed — OTP_SRC missing— clone erlang/otpprecondition failed — openssl_prefix required— runmix mob.release.openssl <target>firstprecondition failed — Android NDK not at …— install NDKprecondition failed — crypto / public_key / ssl apps missing— this is the verify step catching a broken--with-sslwiring; see the OTP source'sxcomp/erl-xcomp-<arch>-android.conf