From Fedora Project Wiki

m (Ada libraries)
(Packaging of Ada programs)
Line 5: Line 5:
  
 
This document describes all there is to know about Ada in Fedora.  
 
This document describes all there is to know about Ada in Fedora.  
 +
 +
=== Compilation ===
 +
 +
Ada programs in Fedora '''MUST''' be compiled, if possible, using the default Ada compiler in Fedora gcc-gnat. As usual, standard Fedora optimization flags <code>%{optflags}</code> '''MUST''' be used in the compilation. If possible project '''SHOULD''' have makefile and configure script
  
 
=== Ada libraries ===  
 
=== Ada libraries ===  
Line 12: Line 16:
  
 
=== Files placing ===
 
=== Files placing ===
 
Ada programs in Fedora '''MUST''' be compiled, if possible, using the default Ada compiler in Fedora gcc-gnat. As usual, standard Fedora optimization flags <code>%{optflags}</code> '''MUST''' be used in the compilation. If possible project '''SHOULD''' have makefile and configure script
 
  
 
All Ada include files '*.adb'  and '*.ads' '''MUST''' be placed in the standard include directory: either directly in <code>%{_includedir} </code>, or if headers have general names or upstream recommends having an own directory, in e.g. <code>%{_includedir}/%{name}</code>.  
 
All Ada include files '*.adb'  and '*.ads' '''MUST''' be placed in the standard include directory: either directly in <code>%{_includedir} </code>, or if headers have general names or upstream recommends having an own directory, in e.g. <code>%{_includedir}/%{name}</code>.  

Revision as of 07:45, 8 February 2011

Packaging of Ada programs

Introdution

This document describes all there is to know about Ada in Fedora.

Compilation

Ada programs in Fedora MUST be compiled, if possible, using the default Ada compiler in Fedora gcc-gnat. As usual, standard Fedora optimization flags %{optflags} MUST be used in the compilation. If possible project SHOULD have makefile and configure script

Ada libraries

The Policy for Ada libraries is mostly interesting if you want to package libraries. If you only want to use libraries, see Package Libraries

Files placing

All Ada include files '*.adb' and '*.ads' MUST be placed in the standard include directory: either directly in %{_includedir} , or if headers have general names or upstream recommends having an own directory, in e.g. %{_includedir}/%{name}.

Ada projects files MUST be placed in %{_libdir}/gnat/ directory of if project have several '*.gpr' files in e.g.  %{_libdir}/gnat/%{name}.

Rpmlint and Ada packages

rpmlint is a program that checks packages for common problems. For ada packages, some of the rpmlint messages can be disregarded.

Devel packages

Ada packages MUST package Ada specification files (*.ads), Ada body files (*.adb) and GNAT project (*.gpr) files in -devel package. The -devel package SHALL NOT provide any *.o files.

  • Ada Library information
The -devel package SHALL provide Ada Library Information (*.ali) files that gcc-gnat creates when compiling the shared (relocatable, not static) library. The '*.ali' files SHOULD reside in %{libdir}/%{name}/*.ali.
  • GNAT project file
The -devel package for each library SHALL provide a GNAT project file named %{_libdir}/gnat/%{name}.gpr
The project file SHALL have a Source_Dirs attribute containing at least %{_libdir}/gnat/%{name}.gpr
The project file SHALL have a Library_ALI_Dir equal to %{_libdir}/gnat/%{name}.gpr
The project file SHALL have a Library_Name attribute equal to the library name of the shared library.
The project file SHALL have a Library_Kind attribute equal to ‘dynamic’ or 'relocatable'
The project file SHALL have a Library_Dir attribute equal to %{_libdir}