Raw File
dune
; This file was automatically generated, do not edit.
; Edit file manifest/main.ml instead.

(library
 (name bls12_381)
 (public_name bls12-381)
 (instrumentation (backend bisect_ppx))
 (libraries
  integers
  integers_stubs_js
  zarith
  zarith_stubs_js
  hex)
 (js_of_ocaml (javascript_files runtime_helper.js blst_bindings_stubs.js))
 (library_flags (:standard -linkall))
 (modules bls12_381 ff_sig fr fq12 g1 g2 gt pairing fq fq2)
 (private_modules fq fq2)
 (foreign_archives blst)
 (foreign_stubs
  (language c)
  (flags (-Wall -Wextra :standard (:include c_flags_blst.sexp)))
  (names blst_wrapper blst_bindings_stubs))
 (c_library_flags (-Wall -Wextra :standard -lpthread)))

(copy_files libblst/bindings/blst.h)

(copy_files libblst/bindings/blst_extended.h)

(copy_files libblst/bindings/blst_aux.h)

(data_only_dirs libblst)

(rule
 (deps (source_tree libblst) build_blst.sh blst_extended.c blst_extended.h)
 (targets libblst.a dllblst.so c_flags_blst.sexp)
 (action
  (no-infer
   (progn
    (run cp blst_extended.c libblst/src/blst_extended.c)
    (run cp blst_extended.h libblst/bindings/blst_extended.h)
    (run sh build_blst.sh)
    (run cp libblst/libblst.a libblst.a)
    (ignore-stderr
     (with-accepted-exit-codes
      (or 0 1)
      (run cp libblst/libblst.so dllblst.so)))
    (ignore-stderr
     (with-accepted-exit-codes
      (or 0 1)
      (run cp libblst/libblst.dylib dllblst.so)))))))

(rule
 (mode fallback)
 (deps
  (source_tree libblst)
  needed-wasm-names
  blst_extended.c
  (glob_files *.h))
 (targets blst.wasm blst.js)
 (action
  (progn
   (run cp -f blst_extended.c libblst/src/)
   (run
    emcc
    -Os
    -o blst.js
    -I libblst/src/
    libblst/src/server.c
    %{dep:blst_wrapper.c}
    -DENABLE_EMSCRIPTEN_STUBS
    -DENABLE_MODULE_RECOVERY
    -s ALLOW_MEMORY_GROWTH=1
    -s WASM=1
    -s MALLOC=emmalloc
    -s EXPORT_ES6=0
    -s FILESYSTEM=0
    -s MODULARIZE=1
    -s EXPORT_NAME='_BLS12381'
    -s EXPORTED_FUNCTIONS=@needed-wasm-names
    --no-entry))))

(executable
 (name gen_wasm_needed_names)
 (modules gen_wasm_needed_names)
 (libraries re))

(rule
 (targets needed-wasm-names)
 (mode promote)
 (deps (:files blst_bindings_stubs.js))
 (action
  (with-outputs-to %{targets} (run ./gen_wasm_needed_names.exe %{files}))))

(install
 (files
  libblst/bindings/blst.h
  libblst/bindings/blst_aux.h
  blst_extended.h
  blst_misc.h
  caml_bls12_381_stubs.h)
 (section lib)
 (package bls12-381))
back to top