(rule
  (targets my_types.ml)
  (deps my_types_generator.exe)
  (action (with-stdout-to %{targets} (run %{deps})))
)

(rule
  (targets my_types_generator.exe)
  (deps my_types_generator.c)
  (action (run %{cc}
           -o %{targets}
           %{read:libusb_cflags}
           %{read:ctypes_cflags}
           -I%{ocaml-config:standard_library}
           %{deps}))
)

(rule
  (targets my_types_generator.c)
  (action  (with-stdout-to %{targets}
    (run c_types_generator/c_types_generator.exe)))
)

(rule
  (targets ctypes_cflags)
  (action
    (with-stdout-to %{targets}
      (run ctypes_cflags_generator/ctypes_cflags_generator.exe)))
)

(rule
  (targets libusb_cflags)
  (action
    (with-stdout-to %{targets}
                    (run libusb_cflags_generator/libusb_cflags_generator.exe)))
)