(rule
 (targets stdlib.cma.js)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (run
   %{bin:js_of_ocaml}
   --pretty
   --debug
   var
   --debuginfo
   %{lib:stdlib:stdlib.cma}
   -o
   %{targets})))

(rule
 (targets stdlib.cma.output.js)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (with-stdout-to
   %{targets}
   (run tail -n +3 %{dep:stdlib.cma.js}))))

(rule
 (alias runtest)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (diff stdlib.cma.expected.js stdlib.cma.output.js)))

(library
 (name shapes)
 (modules m1 m2 m3))

(rule
 (targets shapes.cma.js)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (run
   %{bin:js_of_ocaml}
   --load-shape
   %{dep:stdlib.cma.js}
   --pretty
   --debuginfo
   %{dep:shapes.cma}
   -o
   %{targets})))

(rule
 (targets shapes.cma.output.js)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (with-stdout-to
   %{targets}
   (run tail -n +3 %{dep:shapes.cma.js}))))

(rule
 (alias runtest)
 (enabled_if
  (and
   (>= %{ocaml_version} "5.4")
   (< %{ocaml_version} "5.5")))
 (action
  (diff shapes.cma.expected.js shapes.cma.output.js)))

(rule
 (targets fs.output.js)
 (deps file1 file2)
 (action
  (run
   %{bin:js_of_ocaml}
   build-fs
   -o
   %{targets}
   file1:/static/file1
   file2:/static/dir/file2)))

(rule
 (alias runtest)
 (action
  (diff fs.expected.js fs.output.js)))
