From Fedora Project Wiki
(русскоязычная версия)
 
Line 1: Line 1:
{{autolang}}
{{autolang}}


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


===Вступление===
===Вступление===
Line 7: Line 7:


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


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


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


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

Revision as of 13:29, 10 February 2011

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

Вступление

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

Компиляция

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

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

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

Пакеты Ада и RPMLint

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

Devel пакеты

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