val mtime_of_source_object: source_object -> float option
val mtime_of_target_object: target_object -> float option
val is_readonly_buri_of: options -> source_object -> bool
+ val dotdothack: source_object -> source_object
end
module Make = functor (F:Format) -> struct
if targets = [] then
make_aux root opts [] [] deps
else
- make_aux root opts [] [] (purge_unwanted_roots targets deps)
+ make_aux root opts [] []
+ (purge_unwanted_roots (List.map F.dotdothack targets) deps)
in
HLog.debug ("Leaving directory '"^root^"'");
Sys.chdir old_root;
val mtime_of_source_object: source_object -> float option
val mtime_of_target_object: target_object -> float option
val is_readonly_buri_of: options -> source_object -> bool
+ val dotdothack: source_object -> source_object
end
module Make :
let load_deps_file = Librarian.load_deps_file;;
+ let dotdothack s =
+ let rec aux = function
+ | ".." :: _ :: tl -> aux tl
+ | x -> x
+ in
+ String.concat "/" (aux (Str.split (Str.regexp "/") s))
+ ;;
+
end
module Make = Librarian.Make(F)