ocaml/ocamltest/ocaml_backends.ml

39 lines
1.7 KiB
OCaml

(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Sebastien Hinderer, projet Gallium, INRIA Paris *)
(* *)
(* Copyright 2016 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
(* Backends of the OCaml compiler and their properties *)
type t = Native | Bytecode
let is_bytecode t = t=Bytecode
let is_native t = t=Native
let string_of_backend = function
| Native -> "native"
| Bytecode -> "bytecode"
(* Creates a function that returns its first argument for Bytecode *)
(* and its second argument for Native code *)
let make_backend_function bytecode_value native_value = function
| Bytecode -> bytecode_value
| Native -> native_value
let module_extension = make_backend_function "cmo" "cmx"
let library_extension = make_backend_function "cma" "cmxa"
let executable_extension = make_backend_function "byte" "opt"