Module Rule


module Rule: sig .. end
copy_rule name ?insert source destination

type env = Pathname.t -> Pathname.t 
type builder = Pathname.t list list -> (Pathname.t, exn) My_std.Outcome.t list 
type action = env -> builder -> Command.t 
type 'a gen_rule 
type rule = Pathname.t gen_rule 
type rule_scheme = Resource.resource_pattern gen_rule 
type 'a rule_printer = (Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a gen_rule -> unit
val name_of_rule : 'a gen_rule -> string
val deps_of_rule : 'a gen_rule -> Pathname.t list
val prods_of_rule : 'a gen_rule -> 'a list
val rule : string ->
?tags:string list ->
?prods:string list ->
?deps:string list ->
?prod:string ->
?dep:string ->
?stamp:string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
action -> unit
val copy_rule : string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
string -> string -> unit
copy_rule name ?insert source destination
module Common_commands: sig .. end
val print : Format.formatter -> rule -> unit
val pretty_print : 'a rule_printer

For system use only
val subst : Resource.env -> rule_scheme -> rule
val can_produce : Pathname.t -> rule_scheme -> rule option
val compare : 'a gen_rule -> 'a gen_rule -> int
val print_rule_name : Format.formatter -> 'a gen_rule -> unit
val print_rule_contents : 'a rule_printer
val get_rules : unit -> rule_scheme list
val call : builder -> rule -> unit
val build_deps_of_tags : builder -> Tags.t -> Pathname.t list