On Sun, Jul 10, 2016 at 4:03 AM, Gerd Stolpmann wrote: > So how to fix this? In my opinion there are two solutions. You can > either have a more intelligent ocamldep (e.g. one that reads in > non-local cmi files and uses that information and also tries to > interpret all project ml files at once and not file by file - btw, did > anybody check whether there is an algorithm that precisely solves the > problem?). The other solution path is to mark toplevel modules in the > syntax of OCaml (e.g. you'd have to do "open ^M2" is M2 is a toplevel > module). > Would an acceptable third option be to simply record the dag explicitly in your build file? Working with google's build system [opensourced as bazel: http://www.bazel.io/] has given me a great appreciation for simply writing out build dependencies manually; sure, it is relatively tedious to have to write out the graph yourself rather than have ocamldep figure it out, but the time and effort to do so is a small fraction of the overall development time of your project, and the reward is a 100% reliable "detection" of the build topology. martin