(русскоязычная версия) |
|||
Line 1: | Line 1: | ||
{{autolang}} | {{autolang}} | ||
=Компиляция программ на языке | =Компиляция программ на языке Ada= | ||
===Вступление=== | ===Вступление=== | ||
Line 7: | Line 7: | ||
===Компиляция=== | ===Компиляция=== | ||
Компиляция программ на языке Ада в ОС Fedora осуществляется при помощи | Компиляция программ на языке Ада в ОС Fedora осуществляется при помощи компилятора gcc-gnat. Как обычно, стандартный флаг оптимизации в Fedora %{optflags} должен быть использован. Желательно, чтобы проект имел makefile или скрипт сборки. | ||
компилятора gcc-gnat. Как обычно, стандартный флаг оптимизации в Fedora | |||
%{optflags} должен быть использован. Желательно, чтобы проект имел makefile или | |||
скрипт сборки. | |||
===Работа с файлами=== | ===Работа с файлами=== | ||
* Все включаемые файлы Ада (*.adb, *.ads) должны быть в стандартной include директории: либо в %{_includedir}, либо в %{_includedir}/%{name}, если происходит пересечение имен или того требует используемая парадигма. | |||
директории: либо в %{_includedir}, либо в %{_includedir}/%{name}, если | * Все файлы проекта должны быть помещены в директорию %{_datadir}/gpr/, или, если проект состоит из нескольких *.gpr файлов, в %{_gnatdir}/ada/%{name}. | ||
происходит пересечение имен или того требует используемая парадигма. | * Информационные файлы библиотек Ада *.ali должны располагаться в %{libdir}/%{name}/ (то есть %{libdir}/%{name}/*.ali). | ||
если проект состоит из нескольких *.gpr файлов, в %{_gnatdir}/ada/%{name}. | |||
%{libdir}/%{name}/ (то есть %{libdir}/%{name}/*.ali). | |||
===Пакеты Ада и RPMLint=== | ===Пакеты Ада и RPMLint=== | ||
RpmLint - программа, которая проверяет пакеты на наличие общепринятых ошибок. | RpmLint - программа, которая проверяет пакеты на наличие общепринятых ошибок. Для пакетов Ада некоторые сообщения RPMLint, такие как "executable-stack", могут быть проигнорированы. | ||
Для пакетов Ада некоторые сообщения RPMLint, такие как "executable-stack", могут | |||
быть проигнорированы. | |||
===Devel пакеты=== | ===Devel пакеты=== | ||
* Пакеты Ада должны иметь спецификационные файлы (*.ads), файлы кода (*.adb), файлы, содержащие информацию о библиотеках (*.ali), и файлы GNAT проекта (*.gpr) в -devel пакете. | |||
файлы, содержащие информацию о библиотеках (*.ali), и файлы GNAT проекта (*.gpr) | * Пакет -devel должен иметь зависимость от fedora-gnat-common. | ||
в -devel пакете. | # Пакет -devel должен предоставлять все исходные файлы (код и библиотеки), необходимые для компиляции. | ||
* Директория со всеми исходниками Ада не должна содержать какие-либо makefile или другие файлы, которые могут потребоваться для рекомпиляции библиотеки. | |||
* Пакет -devel не должен предоставлять какие-либо *.o файлы. | |||
необходимые для компиляции. | * Пакет -devel должен предоставлять файлы информации о библиотеках (*.ali), которые создаются программой gcc-gnat во время компиляции не статических библиотек. | ||
* Пакет -devel должен предоставлять для каждой библиотеки файл GNAT проекта, названный %{_datadir}/ada/%{name}.gpr. | |||
или другие файлы, которые могут потребоваться для рекомпиляции библиотеки. | |||
которые создаются программой gcc-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.
- Пакет -devel должен предоставлять все исходные файлы (код и библиотеки), необходимые для компиляции.
- Директория со всеми исходниками Ада не должна содержать какие-либо makefile или другие файлы, которые могут потребоваться для рекомпиляции библиотеки.
- Пакет -devel не должен предоставлять какие-либо *.o файлы.
- Пакет -devel должен предоставлять файлы информации о библиотеках (*.ali), которые создаются программой gcc-gnat во время компиляции не статических библиотек.
- Пакет -devel должен предоставлять для каждой библиотеки файл GNAT проекта, названный %{_datadir}/ada/%{name}.gpr.