Re: dynamic and static version of installed project
On Wed, Apr 30, 2014 at 01:42:42PM +0100, Ludovic Brenta wrote:
> xavier grave wrote:
> >In the Holy Debian Ada Policy [1] it is stated that
> >Rule: The project file SHALL have
> >/usr/share/ada/adainclude/LIBRARY.
> > a Library_Kind attribute equal to ‘dynamic’.
> >I'm wondering if the Library_Kind attribute constraint can be changed to :
> > a Library_Kind attribute equal to External ("LIBRARY_KIND", dynamic);
> >
> >It will allow for static linking for development.
> This might be a good idea. Could you give it a try on libxmlezout and
> report back how well it works? If then we can sanctify a
> "clarification" to the Holy Debian Ada Policy :)
I suggested something similar in
https://lists.debian.org/debian-ada/2014/03/msg00038.html
If we provide a single project configurable with a variable, the
variable name should contain the library name, so that indirect
dependencies are not affected by the setting.
Here is a concrete suggestion.
-- Dependencies described by a GNAT project.
with "dep1";
library project Foo is
type Kind_Type is ("dynamic", "relocatable", "static");
Kind : Kind_Type := External ("foo_library_kind", "dynamic");
for Library_Name use "foo";
for Library_Kind use Kind;
for Source_Dirs use ("/usr/share/ada/adainclude/foo");
for Library_Dir use "/usr/lib/$(DEB_HOST_MULTIARCH)";
for Library_Ali_Dir use "/usr/lib/ada/adalib/foo";
for Externally_Built use "True";
package Linker is
case Kind is
when "static" =>
-- All dependencies without GNAT project.
for Linker_Options use ("-ldep2", "-ldep3");
when "dynamic" | "relocatable" =>
-- Dependencies without GNAT project, whose symbols may
-- be referenced by an end user (renamings, C imports...).
for Linker_Options use ("-ldep3");
end case;
end Linker;
end Foo;
Reply to: