comp.lang.ada
 help / color / mirror / Atom feed
From: "Björn Persson" <Bjorn@xn--rombobjrn-67a.se>
Subject: Introducing Comfignat
Date: Wed, 07 Aug 2013 19:32:09 +0200
Date: 2013-08-07T19:32:09+02:00	[thread overview]
Message-ID: <1375896729.30906.2.camel@speedy.xn--rombobjrn-67a.se> (raw)

[-- Attachment #1: Type: text/plain, Size: 2519 bytes --]

Last Friday I published the first release of Comfignat. Comfignat is
common, convenient, command-line-controlled compile-time configuration
of software built with the GNAT tools on Unix-like operating systems.

In my work on packaging Ada software in Fedora I have found that most
Ada projects have rather inflexible build systems. Makefiles and project
files usually have to be modified to meet Fedora’s policies. Files
placement is often not configurable enough, and support for multiarch
systems and installation to a staging directory is often missing. There
is also a lack of naming conventions. In C projects Make variables such
as CFLAGS and LDFLAGS are a well established de facto standard. Among
Ada projects there is no consensus. The lack of conventions slows
packaging down as it takes time to figure out each makefile.

It’s quite understandable that Ada programmers don’t want to write a lot
of Make code for every project but rather focus on their Ada
programming, but the result is inflexible makefiles that don’t meet
users’ and distributions’ needs.

To make my own projects fully configurable, multiarch-capable and
stageable while minimizing the amount of Make code that must be written
for every new project, I have written Comfignat. It consists of a
makefile foundation with generic Make code to be included by each
project’s makefile, and an abstract GNAT project file to be imported by
each project’s project files. Leveraging GNU Make and Gnatprep,
Comfignat adds the flexibility that GNAT project files lack, so that
programs and libraries can easily be configured for all sorts of use
cases, such as installing locally from source, packaging in a
distribution, building relocatable binary packages, or testing and
debugging on a developer’s workstation.

As all the code in Comfignat is generic it should be useful in any
project that targets GNAT and Unix-like systems, and will greatly reduce
the amount of Make code that needs to be written for each project. It
works for mixed-language projects as well as pure Ada projects, and
Gnatmake and GPRbuild are both supported.

Read more:
https://www.rombobjörn.se/Comfignat/

Download the tarball:
https://www.rombobjörn.se/Comfignat/download/

Browse the code online:
https://gitorious.org/comfignat/comfignat/trees/master

See how my projects use Comfignat:
https://gitorious.org/adamilter/adamilter/trees/master
https://gitorious.org/adamilter/system_log/trees/master


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

             reply	other threads:[~2013-08-07 17:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-07 17:32 Björn Persson [this message]
2013-08-07 18:01 ` Introducing Comfignat Simon Wright
2013-08-07 19:00   ` Björn Persson
2013-08-10 14:52 ` Tero Koskinen
2013-08-12  9:03   ` Björn Persson
2013-08-13 14:24     ` Tero Koskinen
2013-08-14 13:13       ` Crash problem with GNAT in Fedora 18 (was: Introducing Comfignat) Björn Persson
2013-08-20  5:10         ` Crash problem with GNAT in Fedora 18 Tero Koskinen
2013-08-20  7:26           ` Simon Wright
2013-08-24  8:34           ` Björn Persson
replies disabled

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