Hello, There is old school package manager for OCaml called `ocamlfind` which gives in your case an error about missing package 'dummy'. To make your package discoverable by ocamlfind you need to install your cmxa's with right META file. It is usually done using command 'ocamlfind install dummy META dummy.cmxa' and discoverable later using `ocamlfind query dummy`. Something like this in opam file should help: build: [ [make] ] install: ["ocamlfind" "install" "dummy" "META" file1file2 ] You can also try new fancy way of installing by providing opam an explicit list of files that should be copied but I'm not very familiar with it. Documentation will probably help. Happy hacking, Dmitrii On Wed, Aug 14, 2019 at 4:20 PM Jocelyn Sérot wrote: > Dear Camlers, > > I’ve been fighting for one entire day with a problem without success and > the more i dig, the more confused i am :( > > Suppose i define a small opam package - let’s call it « dummy » : > > opam-version: "2.0" > name: "dummy" > version: "0.0" > synopsis: "A dummy OPAM package" > maintainer: "JS" > authors: "JS" > license: "MIT" > depends: [ "ocaml" "ocamlfind" ] > build: [ > [make] > ] > > where [make] simply builds the library files [mylib.cma] and [mylib.cmxa] > (by directly calling ocamlc/opt or using dune - this does not matter here). > > What is the correct way to make this package available to other programs : > > [opam pin add .] > > or > > [opam install .] > > ? > > I’ve tried both solutions but systematically get : > > ocamlfind ocamlc -package dummy -linkpkg -o main main.ml > ocamlfind: Package `dummy' not found > > when trying to compile [main.ml], where this file contains, for example > : « let _ = Mylib.dump () » (and where [dump] is a function defined in > mylib.ml » > > When simply pinning the package, [opam info dummy] gives : > > <><> dummy: information on all versions > <><><><><><><><><><><><><><><><><><> 🐫 > name dummy > all-versions 0.0 > > <><> Version-specific details > <><><><><><><><><><><><><><><><><><><><><><><> 🐫 > version 0.0 > pin file:///Users/jserot/Dev/ml/opam/simple/build/raw > url.src: "file:///Users/jserot/Dev/ml/opam/simple/build/raw" > authors: "JS" > maintainer: "JS" > license: "MIT" > depends: "ocaml" "ocamlfind" > synopsis A dummy OPAM package > > which tends does not show any installed version of the package (and hence > could explain why ocamlfind does not find it ?) > > After installing the package ([opam install .]), [opam info dummy] gives : > > $ opam info dummy > > <><> dummy: information on all versions > <><><><><><><><><><><><><><><><><><> 🐫 > name dummy > all-installed-versions 0.0 [4.06.0] > all-versions 0.0 > > <><> Version-specific details > <><><><><><><><><><><><><><><><><><><><><><><> 🐫 > version 0.0 > pin file:///Users/jserot/Dev/ml/opam/simple/build/raw > url.src: "file:///Users/jserot/Dev/ml/opam/simple/build/raw" > authors: "JS" > maintainer: "JS" > license: "MIT" > depends: "ocaml" "ocamlfind" > synopsis A dummy OPAM package > $ > > which now seems to indicates that the package is « installed » (though i > do not fully understand the distinction between the former case..). > But i still get the message > > ocamlfind ocamlc -package dummy -linkpkg -o main main.ml > ocamlfind: Package `dummy' not found > > There must be sth i’m doing wrong (or have not understood in the way opam > works).. > Any help appreciated. > > Jocelyn > > > > > > >