[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Nicolas Pouillard <nicolas.pouillard@g...> |
| Subject: | Re: [Caml-list] Ocamlbuild directory inclusion problem |
Excerpts from Dario Teixeira's message of Sat Oct 24 18:11:26 +0200 2009: > Hi, > > I've come across another issue with Ocamlbuild, and I'm not sure if this one > is a bug or a feature. Consider the project tree below; note that everything > under lib/ is supposed to produce a foo.cma library, while cmd/ is a command > line application that uses foo.cma (and which can be safely ignored for now). > > |-- _tags > |-- lib/ > | |-- _tags > | |-- foo.mllib > | |-- foo_core.mlpack > | |-- foo_core/ > | | |-- (...) > | | > | |-- foo_ext.mlpack > | |-- foo_ext/ > | |-- (...) > | > |-- cmd/ > |-- (...) > > The file lib/_tags just contains "<foo_core> or <foo_ext>: include". If I issue > "ocamlbuild foo.cma" inside the lib/ directory, then foo.cma gets built as expected. > However, if I move to the parent directory and issue "ocamlbuild lib/foo.cma", > I get an error: > > ocamlc -pack lib/foo_ext/beta.cmo lib/foo_ext/alpha.cmo -o lib/foo_ext.cmo > File "_none_", line 1, characters 0-1: > Error: The implementation (obtained by packing) > does not match the interface lib/foo_ext.mli: > Modules do not match: > sig val num : int end > is not included in > Foo_core.Zero.S > Unbound module type Foo_core.Zero.S > Command exited with code 2. > > > The problem is of course that "-I lib" should be added to the invocation of ocamlc. > For this purpose I've created a myocamlbuild.ml in the root directory, with the > following contents: What about adding «"lib": tnclude» into the main _tags file? BTW «<foo_core> or <foo_ext>: include» could be written «"foo_core" or "foo_ext": include» Best regards, -- Nicolas Pouillard http://nicolaspouillard.fr