对于OCaml库,install
和uninstall
目标中的Makefile
和ocamlfind
目标需要做些什么才能使其与其他安装完美配合,无缝工作与{{1}}等等?基本上是一个“好公民”。我现在对GODI不感兴趣。谢谢!
答案 0 :(得分:6)
ocamlfind的META文件很容易编写(基本上,在你知道的另一个ocaml项目中查找META,复制它并进行相应的更改),它们将为你提供ocamlfind集成,特别是对后期的简单支持构建安装和卸载(使用ocamlfind install
和ocamlfind remove
)。你应该从那开始。
¹:例如,我从batteries's META获取灵感。
Makefile的构建部分更加棘手,它们是众多的解决方案(OCamlMakefile,OMake,ocamlbuild,plain Makefile等),具有不同的优势和劣势。如果你的项目很简单,我会建议ocamlbuild自己处理很多依赖项跟踪。
您也可以使用Oasis,这是一个基于ocamlbuild和ocamlfind构建的相对较新的工具,旨在为预构建配置和各种构建和部署(程序,您的软件)提供统一的配置文件图书馆(如有),附带数据或文件......)。它还不是一个成熟的项目(它的小兄弟Oasis-DB尚未发布),但如果你有时间,我鼓励你试一试。它比META复杂一点,因为它最终会做得更多,所以首先构建META仍然是一个很好的步骤。
最后,你说你对Godi不感兴趣(Godi是一个非常好的系统,在某些情况下(例如BSD等),这是一个很好的选择,有一个很好的OCaml安装),但万一你可以仍然对Godiva感兴趣,这是一个帮助构建GODI包的工具。但我自己从未使用过它。
答案 1 :(得分:4)
我不使用makefile,而是使用ocamlbuild和shell脚本来安装软件distribute。 Debian人使用这些脚本为我的软件打包没有问题。因此,您可能需要检查它们,因为它们符合它们的一些要求(例如,字节和本机代码的单独目标)。
您可能还想看看 到他们的packaging policy,虽然我不知道这份文件是否仍然是最新的。
不要忘记为ocamlfind添加META文件。您可能还想为即将到来的oasis-db项目添加_oasis文件(尚未在我分发的软件中完成)。