Closed motiejus closed 11 years ago
Have you actually tried running make
after make deps
?
Things that you posted are normal, because make deps
installs dependencies locally. make
should pick them up from ./deps
, not from system-wide location.
$ OCAMLPATH=build/lib/ocaml ocamlfind query xmlm
build/lib/ocaml/xmlm
OK, now I get it. make deps
actually searches these dependencies system-wide and tries to use them if they are available... And this is not an error.
Given that dependencies are bundled with ocaml, why is it searching for global deps?
For instance, if I install libxmlm-ocaml-dev
in Ubuntu 12.04 and try to compile piqi, it will fail, because libxmlm-ocaml-dev
in standard repos is version 1.0.2
, which is incompatible (it does not have ?decl:bool
argument in Xmlm.make_output
).
If there is no plan to decouple dependencies, I would think it makes sense to always use the local dependencies. Or is there such plan for the future?
./configure
is searching for globally installed dependencies, because OCaml users may have them installed already. These days, a typical OCaml user would likely use opam for managing dependencies rather than relying on system package manager.
For the purpose of packaging Piqi, I would definitely not use system-level dependencies like libxmlm-ocaml-dev
and even dependencies installed by opam. To ignore them, you can run OCAMLPATH= ./configure; OCAMLPATH= make deps all
from the packaging scripts. It will force the build scripts to pick up dependencies from ./deps
.
Thanks for clarifications, for now it is good enough for me. I am closing the ticket.
Still, using system-wide deps raises another question, probably better discussed with a pint of beer.
Hi,
I can successfully build piqi from opam, but not the bare repository. Here are the experiments I executed in command-line.
Seems like ocamlfind cannot find dependencies.. Let's see:
.. And I don't know where to go from here.