comp.lang.ada
 help / color / mirror / Atom feed
From: Tapio Kelloniemi <spam12@thack.org>
Subject: Re: GNAT and GNU build system
Date: Thu, 05 Aug 2004 08:50:37 GMT
Date: 2004-08-05T08:50:37+00:00	[thread overview]
Message-ID: <xxmQc.1161$256.723@reader1.news.jippii.net> (raw)
In-Reply-To: mailman.66.1091657496.416.comp.lang.ada@ada-france.org

Stephen Leake <stephen_leake@acm.org> wrote:
From: Tapio Kelloniemi <spam12@thack.org>
Subject: Re: GNAT and GNU build system
Organization: 
References: <mailman.65.1091657194.416.comp.lang.ada@ada-france.org>
Newsgroups: comp.lang.ada
Summary: 
Keywords: 

Stephen Leake <stephen_leake@acm.org> wrote:
>Tapio Kelloniemi <spam12@thack.org> writes:
>
>> Hi
>>
>> I'm planning to seriously develop free software packages in Ada. The
>> problem I have is GNTA's fitness for GNU program building standards.
>> I would like to autoconfize my project (not very bad, some M4 macros
>> can be found in GtkAda). But I would like to use automake (my projects
>> are in Ada and C, because almost every free software library is written
>> in C).
>
>Sounds reasonable. Others have said "you don't need autmake with Ada".
>That's almost true, but any _real_ project also has tests,
>documentation, and distribution needs which are beyond Ada's scope.
>autoconf/automake help with those tasks, and Ada needs to at least
>cooperate.

And I think that autotools should also cooperate. FSF says that free 
software packages in GNU system should cooperate with others. Luckily 
GNAT is part of GNU project and I think autotools writers could very 
well take a step towards Ada from the complete C centricism. (This C 
centricism is unfortunately accepted by GNU projet and very 
unfortunately even required by the GNU coding standards.)

>Ludovic Brenta <ludovic.brenta@insalien.org> writes:
>
>> Tapio Kelloniemi writes:
>> > I would really prefer typing:
>> > ./configure --prefix=/usr --enable-goldobj
>>
>> I understand your concern completely.  My concern, though, is the
>> sheer complecity of the ./configure script itself, and that of the
>> Makefile it generates.  Most of that complexity is unnecessary with
>> Ada programs, and in fact really gets in the way.  With Ada, you would
>> normally want to take full advantage of GNAT project files.  The only
>> places where ./configure may be of help are for the installation
>> target (--prefix), and finding any Ada libraries you depend on.

There are still things that cannot be solved with Ada, consider such a 
real time programming need as memory mapped IO, which is very 
non-portable.

Configure could perhaps generate a Makefile, which runs automake
with the appropriate GNAT project file (assuming that GNAT is the
only compiler to support). The project file used could be choosed by 
configure (eg. if --enable-maintainer-mode is specified, choose 
debug.gpr, instead super_optimise.gpr).

>This is true. So we need to start generating patches to auto* that
>take advantage of Ada's simplicity. Not an easy task, but in the long
>run it is the right solution.

Note that auto* maintainers are not allowed to accept our patches (if 
longer than few lines), if writer doesn't sign a paper that he doesn't 
own the code (this is the FSF's requirement). I really think that this 
should be doen in tight cooperation with the GNU developers, because 
they have deep knowledge of their tools and we have that of ours.

>Hmm. Maybe rewriting auto* in Ada first would be easier; I'm not
>sure :).

I think that using GNU tools is a good idea not to couple efforts. Pure 
Ada version would of course be easier, but in mixed language projects, 
tools such as autoscan, autoheader and others are also needed.

Things that think should be done to auto* are:
- Autoconf should be able to generat egnatprep definition files, perhaps 
from template like config.adp.in:
-- Define this to the full package name.
PACKAGE := @PACKAGE@

-- Define this to true, if libfoo support should be included.
HAVE_libFOO := @LIBFOO_SUPPORT@

Better even could be that configure would generate this from scratch.

- Automake should be able to compile ada programs (in a way or another).
- Automake should know how to install Ada libraries (unfortunately 
  installing .so and header is not enough.)
- Libtool (never used, don't know what  should be done to it)
- Gettext and autopoint (gettext should be able to scan Ada sources for 
  strings)

>Only if you have a pure Ada project. I find this unlikely; I like
>LaTeX or Texinfo for documentation, and I want my makefiles to run
>test drivers.

You speak truly. Because almost every library is written in C,
C interfacing is required, as ugly and unwanted as it is. It is very often
better to share than write giant size programs which introduce bugs,
because somebody understood something incorrectly.

-- 
Tapio



  reply	other threads:[~2004-08-05  8:50 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-03 19:36 GNAT and GNU build system Tapio Kelloniemi
2004-08-03 20:12 ` Jerome Hugues
2004-08-04  2:05 ` Lutz Donnerhacke
2004-08-04  7:49   ` Tapio Kelloniemi
2004-08-04 13:33     ` Mark H Johnson
2004-08-04 16:04       ` Georg Bauhaus
2004-08-04 19:21         ` Ludovic Brenta
2004-08-04 20:29         ` Tapio Kelloniemi
2004-08-05  2:15           ` Georg Bauhaus
2004-08-06 10:26             ` Stephen Leake
2004-08-06 15:36               ` Georg Bauhaus
2004-08-14  6:00                 ` Tapio Kelloniemi
2004-08-14 11:32                   ` Ludovic Brenta
2004-08-14 14:41                   ` Georg Bauhaus
2004-08-04 20:06       ` Tapio Kelloniemi
2004-08-04 20:34         ` Ludovic Brenta
2004-08-04 22:11           ` Stephen Leake
2004-08-05  8:50             ` Tapio Kelloniemi [this message]
2004-08-08 14:45               ` Ludovic Brenta
2004-08-10 16:18                 ` Nick Roberts
2004-08-12 13:56   ` Florian Weimer
2004-08-13 15:52     ` Lutz Donnerhacke
2004-08-04 22:06 ` Stephen Leake
replies disabled

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