Using internal libraries
From Gallium
Using internal libraries is almost the same thing that Using an external library.
+-+- A/ | +- a.mllib | +- a1.ml | +- ... | +- aN.ml | +-+- B/ | +- b.mllib | +- b1.ml | +- ... | +- bN.ml | +-+- Main/ +- main.ml (depending on a.cma and b.cma)
The simplest thing to do is to let ocamlbuild build things without using libraries:
ocamlbuild -Is A,B Main/main.byte
But here your mllib's are not used.
If you want to use them as libraries you need a small myocamlbuild.ml like:
$ cat myocamlbuild.ml
open Ocamlbuild_plugin;;
dispatch begin function
| After_rules ->
ocaml_lib "A/a";
ocaml_lib "B/b"
| _ -> ()
end
And to tag your files:
$ cat _tags
# tells that main use a and b libs
<Main/main.{byte,native}>: use_a, use_b
# this will avoid the need of command line options to ocamlbuild
"A" or "B": include
Finally just run:
$ ocamlbuild Main/main.byte
