Makefile для установки библиотеки OCaml

Что мне нужно в моих целях install и uninstall в Makefile для библиотеки OCaml, чтобы она хорошо сочеталась с остальной частью установки, без проблем работала с ocamlfind и так далее? В основном, чтобы быть «хорошим гражданином». В настоящее время меня не интересует GODI. Спасибо!


person Gaius    schedule 05.05.2011    source источник
comment
Это привязки OCaml к библиотеке C, которая, как можно предположить, существует, FWIW.   -  person Gaius    schedule 05.05.2011


Ответы (2)


META-файлы для ocamlfind легко написать (по сути, найдите META в другом известном вам проекте ocaml¹, скопируйте его и внесите соответствующие изменения), и они обеспечат вам интеграцию с ocamlfind, в частности, простую поддержку установки после сборки и деинсталляция (используя ocamlfind install и ocamlfind remove). Вы должны начать с этого.

¹: например, меня вдохновляет метабатареи.

Сборочная часть Makefile более сложна, существует множество решений (OCamlMakefile, OMake, ocamlbuild, простой Makefile и т. д.) с различными сильными и слабыми сторонами. Если ваш проект достаточно прост, я бы порекомендовал ocamlbuild, который сам позаботится об отслеживании зависимостей.

Вы также можете использовать Oasis — относительно новый инструмент, основанный на ocamlbuild и ocamlfind, а также стремится предоставить унифицированный файл конфигурации для предварительной конфигурации и различных сборок и развертывания (вашей программы, ваших программных библиотек, если таковые имеются, сопутствующих данных или документации...). Это еще не зрелый проект (и его младший брат Oasis-DB еще не выпущен), но я рекомендую вам попробовать, если у вас есть время. Это немного сложнее, чем META, так как, в конце концов, он делает больше, поэтому создание META в первую очередь все же является хорошим шагом.

Наконец, вы сказали, что вас не интересует Godi (Godi — очень хорошая система, а в некоторых случаях (например, BSD и т. д.) лучше иметь хорошую установку OCaml), но на случай, если вы все еще заинтересованы в Godiva, инструменте, помогающем создавать пакеты GODI. Хотя сам я им никогда не пользовался.

person gasche    schedule 05.05.2011
comment
Я ничего не имею против GODI, просто сейчас это не для меня. Сейчас я использую простой старомодный Makefile (поскольку у меня также есть код C для компиляции). Итак, процесс заключается в том, чтобы создать META-файл, а затем заставить ocamlfind выполнять реальную работу от моего имени? - person Gaius; 06.05.2011
comment
Для установки/удаления в системе и облегчения использования вашей библиотеки другими программистами, да, ocamlfind это то, что вам нужно. По сути, вы просто даете ocamlfind install свой META-файл и список (скомпилированных, .mli и т. д.) файлов, которые вы хотите установить в каталог библиотеки ocaml, и все готово. - person gasche; 06.05.2011

Я использую не make-файлы, а ocamlbuild и сценарий оболочки для установки программного обеспечения, которое я распространяю. Разработчики Debian сделали пакеты для моего программного обеспечения с помощью этих скриптов без проблем. Поэтому вы можете проверить их, поскольку они соответствуют некоторым из их требований (например, отдельные цели для байтового и собственного кода).

Вы также можете ознакомиться с их политикой упаковки, хотя я не знаю, актуален ли этот документ.

Не забудьте добавить файл META для ocamlfind. Вы также можете включить файл _oasis для предстоящего проекта oasis-db. (еще не сделано в программном обеспечении, которое я распространяю).

person Daniel Bünzli    schedule 05.05.2011