Version française
Home     About     Download     Resources     Contact us    
Browse thread
ocamlbuild `Circular dependencies'
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Christian Sternagel <christian.sternagel@u...>
Subject: Re: [Caml-list] ocamlbuild `Circular dependencies'
On Mon, Jan 28, 2008 at 11:23:29AM +0100, Romain Bardou wrote:
> I tried to reproduce a similar set of directories as yours. I couldn't 
> get the "circular dependency" error, but I had to compile everything in 
> one command line, otherwise the file a.cma (which is in the _build/A 
Today I found out, that we indeed had a circular dependency:

An interface file B.mli used a type A.t, whereas the implementation
file A.ml uses functions from B. When using ocamldep + a Makefile, no
error occurred. But ocamlbuild refused to compile... I guess that is
the right thing to do =)

> directory) was deleted before compiling b.cma. The command which I used 
> and which worked is:
> 
> ocamlbuild -Is A,B a.cma b.cma
> 
> I don't really understand how the -lib option works though. Where and 
> when does it look for the library x.cma with the "-lib x" option? How 
> and what's the semantic of the "+" you can add at the beginning of a 
> library name?...
As far as I know, a `+' means that the following name should be searched
relative to the standard library.

Still my question remains, how one should configure a project
that consists of several libraries and one binary, together
with ocamlbuild. E.g.,

+- prof.dir/
+-+- A/
| +- a.mllib
| +- a1.ml
| +- ...
| +- aN.ml
|
+-+- B/
| +- b.mllib
| +- b1.ml
| +- ...
| +- bN.ml
|
+-+- Main/
  +- main.ml (depending on a.cma and b.cma)

cheers

christian
> 
> -- 
> Romain Bardou
> 
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>