aboutsummaryrefslogtreecommitdiffstats
path: root/lib/core_functions.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/core_functions.ml')
-rw-r--r--lib/core_functions.ml23
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/core_functions.ml b/lib/core_functions.ml
index 7fdf1f1..6919f2f 100644
--- a/lib/core_functions.ml
+++ b/lib/core_functions.ml
@@ -5,19 +5,26 @@ module Types = Types_generated
module Functions (F : Ctypes.FOREIGN) = struct
(* open F *)
open Ctypes_static
+
let os_extension =
if Sys.os_type = "Unix" then
let ic = Unix.open_process_in "uname" in
let uname = input_line ic in
let () = close_in ic in
- if uname = "Darwin" then
- "dylib"
- else "so"
+ if uname = "Darwin" then "dylib" else "so"
else "dll"
+
let libmerklecpp =
- Dl.dlopen
- ~flags:[RTLD_GLOBAL; RTLD_NOW]
- ~filename:((Sys.getenv "LIBRELATIONAL_ENGINE_LIB_PATH") ^ "/librelational_engine." ^ os_extension)
- let compute_hash = Foreign.foreign ~from:libmerklecpp "compute_hash" (ptr char @-> Ctypes.string @-> returning void)
- let merkle_generate_root = Foreign.foreign ~from:libmerklecpp "merkle_generate_root" (ptr Ctypes.string @-> int @-> ptr char @-> returning void)
+ Dl.dlopen ~flags:[ RTLD_GLOBAL; RTLD_NOW ]
+ ~filename:
+ (Sys.getenv "LIBRELATIONAL_ENGINE_LIB_PATH"
+ ^ "/librelational_engine." ^ os_extension)
+
+ let compute_hash =
+ Foreign.foreign ~from:libmerklecpp "compute_hash"
+ (ptr char @-> Ctypes.string @-> returning void)
+
+ let merkle_generate_root =
+ Foreign.foreign ~from:libmerklecpp "merkle_generate_root"
+ (ptr Ctypes.string @-> int @-> ptr char @-> returning void)
end