Ok, thanks for the explanations. As for the ocamldoc package, would a META file along these lines do the trick? # Specification for the "ocamldoc" library requires = "compiler-libs" version = "[distributed with Ocaml]" description = "ocamldoc support library" directory= "^ocamldoc" archive(byte) = "ocamldoc.cma" archive(native) = "ocamldoc.cmxa" Le 18/12/2015 18:06, Gabriel Scherer a écrit : > So I just tried¹, and the failure is as follows: > > $ ocamlbuild -tag use_ocamldoc test.cmxs > + /home/gasche/.opam/4.02.3/bin/ocamlopt.opt -shared -I +ocamldoc ocamldoc.cmxa test.cmx -o test.cmxs > File "_none_", line 1: > Error: Cannot find file ocamldoc.cmxa > > It looks like the tag use_ocamldoc expects a file ocamldoc.cmxa to exist, providing library support for ocamldoc plugins, and it does not seem to exist -- it seems that the preferred way to use ocamldoc plugins is to use "ocamldoc.opt -g foo.cmxs", with ocamldoc libraries already linked inside ocamldoc.opt. So just using > > ocamlbuild -cflags -I,+ocamldoc test.cmxs > > works and seems to do what you expect. > > It goes without saying that this is not a perfect long-term solution, as it assumes that ocamldoc libraries are distributed with the stdlib. It would be cleaner to have an ocamldoc package for them (just like ocamlbuild has a dummy ocamlfind package indicating the location of its library files), but it seems that this is not currently the case. It would be nice (but not super-high priority) to have such a dummy package in ocamlfind in the future, so that you can just do > > ocamlbuild -use-ocamlfind -package ocamldoc test.cmxs > > ¹: The most time-consuming part was finding the code of a ocamldoc plugin to compile, as the documentation examples are incomplete. Next time, feel free to provide a tarball with a minimal example to reproduce. > > On Fri, Dec 18, 2015 at 5:14 PM, Armaël Guéneau wrote: > > Hi list, > > I'm wondering how one should compile ocamldoc custom generators using > ocamlbuild. > > First, the ocamlbuild manual > (https://github.com/gasche/manual-ocamlbuild/blob/master/manual.md#basic-tags-) > says that the [use_ocamldoc] tag is deprecated; and that a corresponding > ocamlfind package should be used instead. Is there such a package for ocamldoc? > I did not found one. > > Then, I did not manage to build the plugin into .cma/.cmxs files directly using > ocamlbuild. My command line was something along these lines: > > ocamlbuild -use-ocamlfind -tag use_ocamldoc -package compiler-libs plugin.cmxs > > When trying to build plugin.cma/plugin.cmxs, ocamlbuild complained that "Cannot > find file ocamldoc.cma/ocamldoc.cmxa" (respectively). However, I can build > plugin.cmo/plugin.cmx using the same command line, then create the .cma/.cmxs > manually using ocamlc/ocamlopt - which I ended up doing. > > Is there a better way to do so? If the whole process can be improved (how?), I > would be happy to write the required patches/documentation. > > — Armaël > >