Thanks for the suggested workaround. I have to figure out how to implement it. Since I'm using OMake, I can't easily exclude mylib.ml. I have to either modify OMake's OCaml module or change my build system completely.


On Wed, Sep 10, 2014 at 1:37 AM, Jacques Garrigue <garrigue@math.nagoya-u.ac.jp> wrote:
(added link)
On 2014/09/10 07:21, Ashish Agarwal wrote:

> Is ocamldep 4.02 supposed to support the -no-alias-deps flag too? It doesn't, so I'm not sure how to implement the example at the end of Section 7.17 [1] on a real library. Specifically, I use omake, which calls ocamldep, and I don't see how to avoid it claiming circular dependencies even though I've added -no-alias-deps to the compilation flags.
>
> [1] http://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s%3Amodule-alias

Indeed, this is not supported by ocamldep, and I'm not sure that it would do
much sense to support it fully at this point, as what you need to do is
going to depend on how you use module aliases.
If you follow the recipe described in my ML workshop slides [2], what you
can do is leave your files unmodified (short names both inside and
outside), and use command line flags for copilation:
 ocamlopt -no-alias-deps -open Mylib -o mylibA.cmx a.ml

If you do that, just use ocamldep to compute the dependencies without
mylib.ml, and post-process the results to add a mylib prefix to all file names.

Once the common idioms become clearer, we will probably want to add
some kind of support to ocamldep (to avoid this post-processing).

Jacques Garrigue

[2]   http://www.math.nagoya-u.ac.jp/~garrigue/papers/index.html#modalias