From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ab5f27c42c253ac5 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news.glorb.com!news.zanker.org!border2.nntp.ams.giganews.com!nntp.giganews.com!feeder2.news.jippii.net!reader1.news.jippii.net!53ab2750!not-for-mail From: Tapio Kelloniemi Subject: Re: GNAT and GNU build system References: Newsgroups: comp.lang.ada Message-ID: Date: Thu, 05 Aug 2004 08:50:37 GMT NNTP-Posting-Host: 217.30.176.187 X-Complaints-To: newsmaster@saunalahti.com X-Trace: reader1.news.jippii.net 1091695837 217.30.176.187 (Thu, 05 Aug 2004 11:50:37 EEST) NNTP-Posting-Date: Thu, 05 Aug 2004 11:50:37 EEST Organization: Saunalahti Customer Xref: g2news1.google.com comp.lang.ada:2561 Date: 2004-08-05T08:50:37+00:00 List-Id: Stephen Leake wrote: From: Tapio Kelloniemi Subject: Re: GNAT and GNU build system Organization: References: Newsgroups: comp.lang.ada Summary: Keywords: Stephen Leake wrote: >Tapio Kelloniemi 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 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