let require_wp logs =
    once "wp"
      (fun () ->
         let denv = Wp_parameters.get_output () in
         let dshare = Wp_parameters.get_share() in
         let shared = Format.sprintf "%s/wp.v" dshare in
         let work = Format.sprintf "%s/wp.v" denv in
         Command.copy shared work ;
         (* no added ! -> incremental compilation *)
         let args = [| "-noglob" ; work |] in
         let stdout = Buffer.create 512 in
         let timeout = Wp_parameters.Timeout.get() in
         Logs.command logs "coqc" args ;
         Task.command ~timeout ~stdout "coqc" args
         >>? Logs.output logs stdout
         >>= result_compile work)