我需要在OCaml库的Makefile中的install和uninstall目标中做些什么,才能使它与安装的其余部分很好地配合,与ocamlfind等无缝协作?基本上就是做一个“好公民”。目前我对GODI不感兴趣。谢谢!
发布于 2011-05-05 20:36:50
ocamlfind的元文件很容易编写(基本上,在你知道的另一个ocaml项目中查找元文件,复制它并进行相应的更改),它们将为你提供ocamlfind集成,特别是对构建后安装和卸载(使用ocamlfind install和ocamlfind remove)的简单支持。你应该从这个开始。
²:例如,我从batteries's META中获得了灵感。
生成文件的构建部分比较棘手,它们有许多解决方案(OCamlMakefile、OMake、ocamlbuild、普通生成文件等)。有不同的优点和缺点。如果你的项目足够简单,我会推荐ocamlbuild,它自己负责大量的依赖跟踪。
你也可以使用Oasis,这是一个相对较新的工具,它构建在ocamlbuild和ocamlfind之上,并试图为预构建配置和各种构建和部署(您的程序、软件库,如果有的话,附带的数据或文档...)提供统一的配置文件。它还不是一个成熟的项目(它的小兄弟Oasis-DB还没有发布),但如果你有时间,我鼓励你试一试。它比META稍微复杂一些,因为它最后做的更多,所以首先构建META仍然是一个很好的步骤。
最后,你说你对Godi不感兴趣(Godi是一个非常好的系统,在某些情况下(例如:BSD等)有一个好的OCaml安装是一个很好的选择),但如果你仍然对Godiva感兴趣,这是一个帮助构建GODI包的工具。不过,我自己从来没有用过它。
发布于 2011-05-05 18:04:57
我不使用makefile,而是使用ocamlbuild和一个外壳脚本来安装软件I distribute。Debian的人用这些脚本为我的软件打包,没有任何问题。因此,您可能想要检查它们,因为它们符合它们的一些要求(例如,字节和本机代码的单独目标)。
你可能还想看看他们的packaging policy,尽管我不知道这篇文档是否仍然是最新的。
不要忘记为ocamlfind添加一个元文件。您可能还想为即将到来的oasis-db项目包含一个_oasis文件(在我分发的软件中还没有完成)。
https://stackoverflow.com/questions/5894915
复制相似问题