(rule
 (targets g.ml)
 (deps ../stubgen/ffi_stubgen.exe)
 (action
  (with-stdout-to
   %{targets}
   (run %{deps} -ml))))

(rule
 (targets yaml_stubs.c)
 (deps
  (:stubgen ../stubgen/ffi_stubgen.exe)
  ../../vendor/yaml.h
  ../../vendor/yaml_private.h)
 (action
  (with-stdout-to
   %{targets}
   (run %{stubgen} -c))))

(library
 (name yaml_ffi)
 (public_name yaml.ffi)
 (modules g m)
 (foreign_stubs
  (language c)
  (names yaml_stubs)
  (flags
   ((:standard \ -fPIC)
    -I../../vendor)))
 (flags
  (:standard -w -9-27-32-34))
 (libraries yaml.bindings yaml.types ctypes.stubs ctypes yaml.c))
