(library
 (name js_of_ocaml)
 (public_name js_of_ocaml)
 (libraries js_of_ocaml-compiler.runtime)
 (foreign_stubs
  (language c)
  (names js_of_ocaml_stubs))
 (preprocess
  (pps ppx_js_internal)))

(rule
 (targets js_of_ocaml_stubs.c)
 (deps
  (:jsoo
   (glob_files *.ml))
  (:runtime
   (glob_files ../runtime/*.ml)))
 (mode promote)
 (action
  (with-stdout-to
   %{targets}
   (run ../gen_stubs/gen_stubs.exe %{jsoo} --except %{runtime}))))

(rule
 (targets lib_version.ml)
 (deps
  (:input-file ../../version.ml.in))
 (action
  (copy %{input-file} %{targets})))
