comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: A proposal for Debian policy for Ada
Date: Mon, 17 May 2010 00:05:39 +0200
Date: 2010-05-17T00:05:39+02:00	[thread overview]
Message-ID: <87632ncxjg.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 198miwzl97pnl$.1onmpwoadjr1p.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> On Sun, 16 May 2010 22:48:19 +0200, Ludovic Brenta wrote:
>
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>>> In the past we are used to link external libraries using package Linker and
>>> Default_Switches ("ada") set to, e.g. "-lgdk_pixbuf-2.0". The problem with
>>> this approach is that Linker package is not automatically inherited. There
>>> exist different workarounds all more or less unpleasant.
>>>
>>> Meanwhile there is IMO a cleaner and simpler way. Just create a gpr file
>>> for the library(es) in use. For example:
>>>
>>> project Gdk_Pixbuf is
>>>    for Externally_Built use "true";
>>>    for Source_Files use ();
>>>    for Library_Dir use "/usr/lib"; -- Where it resides
>>>    for Library_Name use "gdk_pixbuf-2.0"; -- Its name (no ".so" ending)
>>>    for Library_Kind use "dynamic"; -- Shared in this case
>>> end Gdk_Pixbuf;
>>>
>>> Then with it in your project:
>>>
>>> with "gdk_pixbuf.gpr";
>>> project My_Library is
>>>    ... -- No linker package needed
>>> end My_Library;
>>>
>>> That is. gnatmake and gprbuild will add necessary linker options to all
>>> projects referencing My_Library.
>>>
>>> What about adding this as a requirement to the Debian policy?
>> 
>> It seems you forgot to read §5.3.6 GNAT project file and §6 Using shared
>> libraries.
>
> 5.3.6 seems to refer to the Ada library being packaged. What I mean is a
> way to reference to an external C library, e.g. libgdk_pixbuf in the
> example.

Ah, I had not caught that subtlety.  There are currently 2517 -dev
packages in the libdevel section of Debian unstable.  Are you suggesting
that each -dev package for the C language should provide a GNAT Project
file?  Or that each -dev package for an Ada library should provide an
individual project file for each C library referenced?  That seems like
a *lot* of work.

> As for 6, it gives an example
>
> with "LIBRARY";
> project PROGRAM is
>    for Source_Dirs use (".");
>    for Object_Dir use "obj";
>    for Exec_Dir use ".";
>    for Main use ("PROGRAM");
>    package Linker is
>       for Default_Switches ("Ada") use ("/usr/lib/libLIBRARY.a");
>    end Linker;
> end;
>
> that uses Default_Switches. It were not necessary if the LIBRARY.gpr (in
> 5.3.6) described both static and dynamic builds controlled by Library_Type
> variable. gnatmake is smart enough to choose either *.a or *.so for the
> dependant library/application. E.g.
>
> project LIBRARY is
>    type Library_Kind_Type is ("static", "relocatable");
>    Library_Kind : Library_Kind_Type :=
>       external ("Library_Type", "relocatable");
>    for Library_Kind use Library_Kind;
>    for Library_Name use "LIBRARY"; -- Valid for either choice
>    for Library_Dir use "/usr/lib"; -- Valid for either choice
>    ...
>    for Externally_Built use "true";
> end LIBRARY;

That's a nice suggestion.  I'll try to implement that for the release
after Squeeze.

-- 
Ludovic Brenta.



  reply	other threads:[~2010-05-16 22:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-16 19:49 A proposal for Debian policy for Ada Dmitry A. Kazakov
2010-05-16 20:48 ` Ludovic Brenta
2010-05-16 21:15   ` Dmitry A. Kazakov
2010-05-16 22:05     ` Ludovic Brenta [this message]
2010-05-17  6:01       ` Stephen Leake
2010-05-17  9:28       ` Dmitry A. Kazakov
2010-05-17 10:02         ` Ludovic Brenta
2010-05-17 13:14           ` Dmitry A. Kazakov
2010-05-18  8:00         ` Stephen Leake
2010-05-18  8:39           ` Dmitry A. Kazakov
2010-05-18  9:53             ` Ludovic Brenta
2010-05-18 12:39               ` Dmitry A. Kazakov
2010-05-19  9:25                 ` Stephen Leake
2010-05-19  9:47                   ` Dmitry A. Kazakov
2010-05-20 10:45                     ` Stephen Leake
2010-05-20 14:06                       ` Dmitry A. Kazakov
2010-05-19 13:24                 ` Björn Persson
2010-05-19  9:22             ` Stephen Leake
2010-05-19  9:52               ` Dmitry A. Kazakov
2010-05-19 10:41                 ` Ludovic Brenta
2010-05-19 12:23                   ` Dmitry A. Kazakov
2010-05-19 13:21                     ` Ludovic Brenta
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox