(library
  (name a)
  (public_name a)
  (modules a)
)

(library
  (name mytool_plugin_b)
  (public_name mytool-plugin-b)
  (modules mytool_plugin_b)
  (libraries a mytool)
)

(library
  (name mytool)
  (public_name mytool)
  (modules register)
)

(executable
  (name main)
  (modules main)
  (public_name mytool)
  (package mytool)
  (libraries mytool findlib.dynload threads)
 )


(rule (copy main.ml main_with_a.ml))
(rule (copy main.ml main_modes_byte.ml))

(executable
  (name main_with_a)
  (modules main_with_a)
  (public_name mytool_with_a)
  (package mytool)
  (libraries mytool findlib.dynload a threads)
 )

(executable
  (name main_modes_byte)
  (modules main_modes_byte)
  (public_name mytool_modes_byte)
  (package mytool)
  (libraries mytool findlib.dynload threads)
  (modes byte)
 )

(executable
  (name main_auto)
  (modules main_auto)
  (public_name mytool_auto)
  (package mytool)
  (libraries mytool findlib.dynload findlib threads)
 )


(library
  (name c_thread)
  (public_name c_thread)
  (modules c_thread)
  (libraries threads mytool)
)
