mix mob.release.otp (mob_dev v0.5.8)

Copy Markdown View Source

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, sequentially

What runs

For each target:

  1. make distclean (tolerated — first-time builds have nothing)
  2. ./otp_build configure --xcomp-conf=<conf> <ssl-flags>
  3. ./otp_build boot (the long step — 5–10 minutes per target)
  4. rm -rf <release_root> then install:
    • Android: ./otp_build release -a <release_root>
    • iOS: make release RELEASE_ROOT=<release_root>
  5. 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_SRC env 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/otp
  • precondition failed — openssl_prefix required — run mix mob.release.openssl <target> first
  • precondition failed — Android NDK not at … — install NDK
  • precondition failed — crypto / public_key / ssl apps missing — this is the verify step catching a broken --with-ssl wiring; see the OTP source's xcomp/erl-xcomp-<arch>-android.conf