opam-version: "2.0"
license: "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
synopsis: "Official release of OCaml 4.12.1"
maintainer: [
  "David Allsopp <david@tarides.com>"
  "Florian Angeletti <florian.angeletti@inria.fr>"
]
authors: ["Xavier Leroy" "Damien Doligez" "Alain Frisch" "Jacques Garrigue" "Didier Rémy" "Jérôme Vouillon"]
homepage: "https://ocaml.org"
bug-reports: "https://github.com/ocaml/opam-repository/issues"
dev-repo: "git+https://github.com/ocaml/ocaml.git#4.12"
depends: [
  "ocaml" {= "4.12.1" & post}
  "base-unix" {post}
  "base-bigarray" {post}
  "base-threads" {post}
]
conflict-class: "ocaml-core-compiler"
flags: compiler
setenv: CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"
conflicts: "relocatable"
build: [
  [
    "./configure"
    "--prefix=%{prefix}%"
    "-C"
    "--with-afl" {ocaml-option-afl:installed}
    "--disable-native-compiler" {ocaml-option-bytecode-only:installed}
    "--disable-force-safe-string" {ocaml-option-default-unsafe-string:installed}
    "DEFAULT_STRING=unsafe" {ocaml-option-default-unsafe-string:installed}
    "--disable-flat-float-array" {ocaml-option-no-flat-float-array:installed}
    "--enable-flambda" {ocaml-option-flambda:installed}
    "--enable-frame-pointers" {ocaml-option-fp:installed}
    "--disable-naked-pointers" {ocaml-option-nnp:installed}
    "--enable-naked-pointers-checker" {ocaml-option-nnpchecker:installed}
    "CC=cc" {!ocaml-option-32bit:installed & !ocaml-option-musl:installed & (os="openbsd"|os="macos")}
    "CC=musl-gcc" {ocaml-option-musl:installed & os-distribution!="alpine"}
    "CFLAGS=-Os" {ocaml-option-musl:installed}
    "CC=gcc -m32" {ocaml-option-32bit:installed & os="linux"}
    "CC=gcc -Wl,-read_only_relocs,suppress -arch i386 -m32" {ocaml-option-32bit:installed & os="macos"}
    "ASPP=cc -c" {!ocaml-option-32bit:installed & !ocaml-option-musl:installed & (os="openbsd"|os="macos")}
    "ASPP=musl-gcc -c" {ocaml-option-musl:installed & os-distribution!="alpine"}
    "ASPP=gcc -m32 -c" {ocaml-option-32bit:installed & os="linux"}
    "ASPP=gcc -arch i386 -m32 -c" {ocaml-option-32bit:installed & os="macos"}
    "AS=as --32" {ocaml-option-32bit:installed & os="linux"}
    "AS=as -arch i386" {ocaml-option-32bit:installed & os="macos"}
    "--host=i386-linux" {ocaml-option-32bit:installed & os="linux"}
    "--host=i386-apple-darwin13.2.0" {ocaml-option-32bit:installed & os="macos"}
    "PARTIALLD=ld -r -melf_i386" {ocaml-option-32bit:installed & os="linux"}
    "LIBS=-static" {ocaml-option-static:installed}
  ]
  [make "-j%{jobs}%"]
]
install: [make "install"]
url {
  src: "https://github.com/ocaml/ocaml/archive/4.12.1.tar.gz"
  checksum: "sha256=f5a48a90557cb47ace7b1590fcab1362a1af38629a218350f69c225c57e96a41"
}
post-messages: [
  "A failure in the middle of the build may be caused by build parallelism
   (enabled by default).
   Please file a bug report at https://github.com/ocaml/opam-repository/issues"
  {failure & jobs > 1}
  "You can try installing again including --jobs=1
   to force a sequential build instead."
  {failure & jobs > 1 & opam-version >= "2.0.5"}
]
depopts: [
  "ocaml-option-32bit"
  "ocaml-option-afl"
  "ocaml-option-bytecode-only"
  "ocaml-option-default-unsafe-string"
  "ocaml-option-no-flat-float-array"
  "ocaml-option-flambda"
  "ocaml-option-fp"
  "ocaml-option-musl"
  "ocaml-option-static"
  "ocaml-option-nnp"
  "ocaml-option-nnpchecker"
]
patches: ["alt-signal-stack.patch"]
extra-source "alt-signal-stack.patch" {
  src: "https://github.com/ocaml/ocaml/commit/1eeb0e7fe595f5f9e1ea1edbdf785ff3b49feeeb.patch?full_index=1"
  checksum: "sha256=7b23f163461d1ca7305a132edc5f014d5dc0d2b1027a34292043c7a3d1d43db9"
}
extra-source "ocaml-variants.install" {
  src:
    "https://raw.githubusercontent.com/ocaml/ocaml/8c17fd444391392c5f9801241374d749c080c1a8/ocaml-variants.install"
  checksum: [
    "sha256=79f2a1a5044a91350a0eb6ce12e261a72a2855c094c425cddf3860e58c486678"
    "md5=3e969b841df1f51ca448e6e6295cb451"
  ]
}
