(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))
