I'm using OCamlMakefile (rather the library that I'm editing uses it, and I have to use it consequently), and I need to add some package dependencies in order to recompile each while developing locally before I ship my changes to opam. Basically, I've added the core and core_kernel packages to these libraries to make some functions tail recursive. But it's turning out that using OCamlMakefile has made it more difficult than it sounds.
A is consumed by B, but both must be installed for them to be usable on the target machine. Currently, you can do an opam install A B and it will work. A has been successfully edited and subsequently recompiled to consume core and core_kernel as it needs to. I was even able to opam pin the package to get it working locally.
B consumes A, but weirdly, B complains of the following when I try to make it:
Error: No implementations provided for the following modules:
Core_kernel referenced from /path/to/(A)
Core referenced from /path/to/(A)
I noted that in Stack Overflow that there were some issues with casing for package names when you built stuff. This is strange because when I was compiling A, it worked fine. I changed the casing to A instead of a in the OCamlMakefile export PACKS= line, and it failed, unable to find the package A.
So, A compiles just fine, but B refuses. I tried to change B to specify various combinations of casing of core (as in: PACKS+=core vs PACKS+=Core) but that failed too.
So now I don't know how to get B to compile using OCamlMakefile.