From Fedora Project Wiki

Revision as of 13:26, 10 February 2011 by Mamasun (talk | contribs) (русскоязычная версия)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Компиляция программ на языке Ада.

Вступление

В этом документе описан метод компиляции программ на языке Ада в ОС Fedora.

Компиляция

Компиляция программ на языке Ада в ОС Fedora осуществляется при помощи компилятора gcc-gnat. Как обычно, стандартный флаг оптимизации в Fedora %{optflags} должен быть использован. Желательно, чтобы проект имел makefile или скрипт сборки.

Работа с файлами

1. Все включаемые файлы Ада (*.adb, *.ads) должны быть в стандартной include директории: либо в %{_includedir}, либо в %{_includedir}/%{name}, если происходит пересечение имен или того требует используемая парадигма. 2. Все файлы проекта должны быть помещены в директорию %{_datadir}/gpr/, или, если проект состоит из нескольких *.gpr файлов, в %{_gnatdir}/ada/%{name}. 3. Информационные файлы библиотек Ада *.ali должны располагаться в %{libdir}/%{name}/ (то есть %{libdir}/%{name}/*.ali).

Пакеты Ада и RPMLint

RpmLint - программа, которая проверяет пакеты на наличие общепринятых ошибок. Для пакетов Ада некоторые сообщения RPMLint, такие как "executable-stack", могут быть проигнорированы.

Devel пакеты

1. Пакеты Ада должны иметь спецификационные файлы (*.ads), файлы кода (*.adb), файлы, содержащие информацию о библиотеках (*.ali), и файлы GNAT проекта (*.gpr) в -devel пакете. 2. Пакет -devel должен иметь зависимость от fedora-gnat-common. 3. Пакет -devel должен предоставлять все исходные файлы (код и библиотеки), необходимые для компиляции. 4. Директория со всеми исходниками Ада не должна содержать какие-либо makefile или другие файлы, которые могут потребоваться для рекомпиляции библиотеки. 5. Пакет -devel не должен предоставлять какие-либо *.o файлы. 6. Пакет -devel должен предоставлять файлы информации о библиотеках (*.ali), которые создаются программой gcc-gnat во время компиляции не статических библиотек. 7. Пакет -devel должен предоставлять для каждой библиотеки файл GNAT проекта, названный %{_datadir}/ada/%{name}.gpr.