(library
 (name Multicore_magic)
 (public_name multicore-magic)
 (libraries
  (select
   multicore_magic.ml
   from
   (multicore_magic_atomic_array_unboxed5 -> multicore_magic.common.ml)
   (multicore_magic_atomic_array_boxed5 -> multicore_magic.common.ml)
   (multicore_magic_atomic_array_ocaml4 -> multicore_magic.common.ml))))

;;

(rule
 (enabled_if
  (< %{ocaml_version} 5.0.0))
 (action
  (copy index.ocaml4.ml index.ml)))

(rule
 (enabled_if
  (>= %{ocaml_version} 5.0.0))
 (action
  (copy index.ocaml5.ml index.ml)))

;;

(rule
 (enabled_if
  (< %{ocaml_version} 5.0.0))
 (action
  (copy cache.1.ml cache.ml)))

(rule
 (enabled_if
  (and
   (>= %{ocaml_version} 5.0.0)
   (not
    (or
     (= %{architecture} arm64)
     (= %{architecture} power)
     (= %{architecture} s390x)))))
 (action
  (copy cache.8.ml cache.ml)))

(rule
 (enabled_if
  (and
   (>= %{ocaml_version} 5.0.0)
   (or
    (= %{architecture} arm64)
    (= %{architecture} power))))
 (action
  (copy cache.16.ml cache.ml)))

(rule
 (enabled_if
  (and
   (>= %{ocaml_version} 5.0.0)
   (= %{architecture} s390x)))
 (action
  (copy cache.32.ml cache.ml)))
