pacahon / sample-implementation

Automatically exported from code.google.com/p/sample-implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Чтобы добавить в свой проект на OCaml скрипты automake/autoconf, следует:

1. Взять из репозитария template свежие файлы

Makefile.am	- шаблон Makefile
configure.in	- шаблон configure, определяет подстановки в Makefile
acinclude.m4	- скрипт с недостающими макросами m4, будет включён в aclocal.m4
autogen.sh	- скрипт запуска перегенерации

2. Поместить их в свой проект.

3. Адаптировать под свои нужды Makefile.am и configure.in, опираясь
на комментарии в файлах. А именно:

а) заменить SOURCES;
б) записать в TARGET желаемый результат сборки: только .cmi/.cmo или
   ещё .cma/.cmxa/.a и т.п.;
в) рекомендуется использовать переменные $(CMI)/$(CMO)/$(CMXA) вместо явного
   указания файлов и расширений;
г) если для линковки требуются дополнительные библиотеки, указать их в EXTRA_CMA;
   библиотеки, указанные для проверки в configure.in, будут добавлены автоматически;
д) если проект собирает библиотку .cma не из всех имеющихся объектов .cmo,
   следует привести правильный список в переменной CMO4CMA;
е) дополнительные флаги парсера указать в P4FLAGS;
ж) в секции all-am перечислить шаги сборки; можно просто удалить
   перечисленные в шаблоне ненужные;
з) если проект собирает исполняемую программу, а не только модули/библиотеки,
   раскомменитровать секцию install-exec-am, раскомментировать удаление программы
   в секции uninstall-am;
и) в секции META заполнить описание проекта (description) и зависимости
   (requires);
к) в configure.in перечислить используемые модули парсера директивами
   AC_CHECK_CAMLP4_MODULE и модули компилятора директивами AC_CHECK_OCAML_MODULE;
л) создать файл VERSION, содержащий строку $Revision: 0 $
м) ocamldep и ocamldsort не понимают синтаксис парсера (revised), так что
   для проектов-парсеров придётся закомментировать их вызов в Makefile.am
   и configure.in соответственно

4. Запустить autogen.sh.

5. Выполнить контрольную пересборку:

$ ./configure
$ make
$ make install
$ make uninstall
$ make clean
$ make maintainer-clean

6. Проверить соответствие оставшихся и исходных файлов. Если есть лишние
или наоборот, отсутствующие, - разобраться и исправить.

7. Включить автозамену ключевого слова Revision на текущую ревизию в файле VERSION:

svn propset "svn:keywords" "Revision"  VERSION

8. Закоммитить проект в Subversion. При этом увеличится ревизия в файле
VERSION, так и задумано.

9. Жить-поживать и добра наживать.

About

Automatically exported from code.google.com/p/sample-implementation


Languages

Language:OCaml 67.7%Language:TeX 11.6%Language:Coq 7.2%Language:HTML 5.6%Language:JavaScript 2.7%Language:Shell 2.4%Language:CSS 1.7%Language:Lex 0.8%Language:Logos 0.2%Language:Common Lisp 0.1%Language:LLVM 0.0%Language:Groff 0.0%