Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- ocamldep.ml.orig Tue Mar 11 00:32:53 2008
- +++ ocamldep.ml Tue Mar 11 00:33:13 2008
- @@ -26,6 +26,8 @@
- let error_occurred = ref false
- let raw_dependencies = ref false
- +let ifiles = ref []
- +
- (* Fix path to use '/' as directory separator instead of '\'.
- Only under Windows. *)
- @@ -63,6 +65,20 @@
- | None -> find_in_path rem in
- find_in_path !load_path
- +let rec find_interior_file name ifs =
- + let uname = String.uncapitalize name in
- + let rec loop ifs =
- + match ifs with
- + [] -> raise Not_found
- + | candidate :: rem ->
- + let bc = Filename.basename candidate in
- + if bc = name || bc = uname then
- + candidate
- + else
- + loop rem
- + in
- + loop ifs
- +
- let find_dependency modname (byt_deps, opt_deps) =
- try
- let filename = find_file (modname ^ ".mli") in
- @@ -80,6 +96,22 @@
- basename ^ (if !native_only then ".cmx" else ".cmo") in
- (bytename :: byt_deps, (basename ^ ".cmx") :: opt_deps)
- with Not_found ->
- + try
- + let filename = find_interior_file (modname ^ ".mli") !ifiles in
- + let basename = Filename.chop_suffix filename ".mli" in
- + let optname =
- + if Sys.file_exists (basename ^ ".ml")
- + then basename ^ ".cmx"
- + else basename ^ ".cmi" in
- + ((basename ^ ".cmi") :: byt_deps, optname :: opt_deps)
- + with Not_found ->
- + try
- + let filename = find_interior_file (modname ^ ".ml") !ifiles in
- + let basename = Filename.chop_suffix filename ".ml" in
- + let bytename =
- + basename ^ (if !native_only then ".cmx" else ".cmo") in
- + (bytename :: byt_deps, (basename ^ ".cmx") :: opt_deps)
- + with Not_found ->
- (byt_deps, opt_deps)
- let (depends_on, escaped_eol) = (": ", "\\\n ")
- @@ -292,5 +324,7 @@
- " (for Windows) Use forward slash / instead of backslash \\ in file paths";
- "-version", Arg.Unit print_version,
- " Print version and exit";
- + "-interiorfile", Arg.String(fun s -> ifiles := s :: !ifiles),
- + "<file> Emit dependency for <file> even if does not exist";
- ] file_dependencies usage;
- exit (if !error_occurred then 2 else 0)
Add Comment
Please, Sign In to add comment