Ada Programming/Installing
Ada compilers are available from several vendors, on a variety of host and target platforms. The Ada Resource Association maintains a list of available compilers.
Below is an alphabetical list of available compilers with additional comments.
AdaMagic from SofCheck
[edit | edit source]SofCheck used to produce an Ada 95 front-end that can be plugged into a code generating back-end to produce a full compiler. This front-end is offered for licensing to compiler vendors.
Based on this front-end, SofCheck used to offer:
- AdaMagic, an Ada-to-C/C++ translator
- AppletMagic, an Ada-to-Java bytecode compiler
SofCheck has merged with AdaCore under the AdaCore name, leaving no visible trace of AdaMagic offering on AdaCore website.
However, MapuSoft is now licensed to resell AdaMagic. They renamed it to "Ada-to-C/C++ changer". New name sounds like fake. Almost no Ada developer heard of MapuSoft. MapuSoft is never seen making Ada libraries, commercial or FLOSS. They are never seen at Ada conferences. Yet this is a real stuff, a validated Ada compiler that knows lots of tricks required to work on top of C/C++ compilers. E.g. it contains a proven knowledge of handling integer overflow with a special "-1" case.
Thanks to MapuSoft, AdaMagic really became available to developers. Get AppCOE, but not Win64 one, install it. In the MapuSoft/AppCOE_x32/Tools/Ada there will be AdaMagic. AdaMagic is known to support Win64, but AppCOE for Win64 is known to contain no AdaMagic at all.
Using AdaMagic from command line is badly supported in AppCOE, but possible. Set up ADA_MAGIC environment variable, edit Tools/Ada/{linux|windows}/SITE/rts_path to point to real path, edit SITE/config to get rid of unsupported C compiler keys, and compile via e.g.
adareg -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World.adb
adabgen -key=`test_key | sed -e '/md5/!d;s/md5 = //'` Hello_World
Commercial; proprietary.
AdaMULTI from Green Hills Software
[edit | edit source]Green Hills Software sells development environments for multiple languages and multiple targets (including DSPs), primarily to embedded software developers.
Languages supported | Ada 83, Ada 95, C, C++, Fortran |
---|---|
License for the run-time library | Proprietary, royalty free. |
Native platforms | GNU/Linux on i386, Microsoft Windows on i386, and Solaris on SPARC |
Cross platforms | INTEGRITY, INTEGRITY-178B and velOSity from Green Hills; VxWorks from Wind River; several bare board targets, including x86, PowerPC, ARM, MIPS and ColdFire/68k. Safety-critical GMART and GSTART run-time libraries certified to DO-178B level A. |
Available from | http://www.ghs.com/ |
Support | Commercial |
Add-ons included | IDE, debugger, TimeMachine, integration with various version control systems, source browsers, other utilities |
GHS claims to make great efforts to ensure that their compilers produce the most efficient code and often cites the EEMBC benchmark results as evidence, since many of the results published by chip manufacturers use GHS compilers to show their silicon in the best light, although these benchmarks are not Ada specific.
GHS has no publicly announced plans to support the two most recent Ada standards (2005 and 2012) but they do continue to actively market and develop their existing Ada products.
DEC Ada from HP
[edit | edit source]DEC Ada was an Ada 83 compiler for OpenVMS. While “DEC Ada” is probably the name most users know, the compiler has also been called “HP Ada”, "VAX Ada", and "Compaq Ada".
GNAT, the GNU Ada Compiler from AdaCore and the Free Software Foundation
[edit | edit source]GNAT is the free GNU Ada compiler, which is part of the GNU Compiler Collection. It is the only Ada compiler that supports all of the optional annexes of the language standard. The original authors formed the company AdaCore to offer professional support, consulting, training and custom development services. It is thus possible to obtain GNAT from many different sources, detailed below.
GNAT is always licensed under the terms of the GNU General Public License.
However, the run-time library uses either the GPL, or the GNAT Modified GPL, depending on where you obtain it.
Several optional add-ons are available from various places:
- ASIS, the Ada Semantic Interface Specification, is a library that allows Ada programs to examine and manipulate other Ada programs.
- FLORIST is a library that provides a POSIX programming interface to the operating system.
- GDB, the GNU Debugger, with Ada extensions.
- GLADE implements Annex E, the Distributed Systems Annex. With it, one can write distributed programs in Ada, where partitions of the program running on different computers communicate over the network with one another and with shared objects.
- GPS, the GNAT Programming Studio, is a full-featured integrated development environment, written in Ada. It allows you to code in Ada, C and C++.
Many Free Software libraries are also available.
GNAT GPL (or Community) Edition
[edit | edit source]As of May 2022, AdaCore no longer supports GNAT GPL. The recommended way to install all the tools and libraries that the Community Edition included is to use Alire, a package manager for Ada sources, which also provides toolchains. Although you can still download and install the last GNAT Community Edition that was published, there won't be any further release.
GNAT Community Edition is a source and binary release from AdaCore, intended for use by Free Software developers only. If you want to distribute your binary programs linked with the GPL run-time library, then you must do so under terms compatible with the GNU General Public License.
As of GNAT GPL Edition 2013:
Languages supported | Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++ |
---|---|
License for the run-time library | pure GPL |
Native platforms | GNU/Linux on x86_64; Microsoft Windows on i386; ; Mac OS X (Darwin, x86_64). Earlier releases have supported Solaris on SPARC, GNU/Linux on i386, Microsoft .NET on i386 |
Cross platforms | AVR, hosted on Windows; Java VM, hosted on Windows; Mindstorms NXT, hosted on Windows; ARM, hosted on Windows and Linux; |
Compiler back-end | GCC 4.9 |
Available from | https://www.adacore.com/download |
Support | None |
Add-ons included | GDB, GPS in source and binary form; many more in source-only form. |
GNAT Modified GPL releases
[edit | edit source]With these releases of GNAT, you can distribute your programs in binary form under licensing terms of your own choosing; you are not bound by the GPL.
GNAT 3.15p
[edit | edit source]This is the last public release of GNAT from AdaCore that uses the GNAT Modified General Public License.
GNAT 3.15p has passed the Ada Conformity Assessment Test Suite (ACATS). It was released in October 2002.
The binary distribution from AdaCore also contains an Ada-aware version of the GNU Debugger (GDB), and a graphical front-end to GDB called the GNU Visual Debugger (GVD).
Languages supported | Ada 83, Ada 95, C |
---|---|
License for the run-time library | GNAT-modified GPL |
Native platforms | GNU/Linux on i386 (with glibc 2.1 or later), Microsoft Windows on i386, OS/2 2.0 or later on i386, Solaris 2.5 or later on SPARC |
Cross platforms | none |
Compiler back-end | GCC 2.8.1 |
Available from | ftp://ftp.cs.kuleuven.ac.be/pub/Ada-Belgium/mirrors/gnu-ada/3.15p/ |
Support | None |
Add-ons included | ASIS, Florist, GLADE, GDB, Gnatwin (on Windows only), GtkAda 1.2, GVD |
GNAT Pro
[edit | edit source]GNAT Pro is the professional version of GNAT, offered as a subscription package by AdaCore. The package also includes professional consulting, training and maintenance services. AdaCore can provide custom versions of the compiler for native or cross development. For more information, see http://www.adacore.com/.
Languages supported | Ada 83, Ada 95, Ada 2005, Ada 2012, C, and optionally C++ |
---|---|
License for the run-time library | GNAT-modified GPL |
Native platforms | many, see http://www.adacore.com/home/products/gnatpro/supported_platforms/ |
Cross platforms | many, see http://www.adacore.com/home/products/gnatpro/supported_platforms/; even more on request |
Compiler back-end | GCC 4.3 |
Available from | http://www.adacore.com/ by subscription (commercial) |
Support | Commercial; customer-only bug database |
Add-ons included | ASIS, Florist, GDB, GLADE, GPS, GtkAda, XML/Ada, and many more in source and, on request, binary form. |
GCC
[edit | edit source]GNAT has been part of the Free Software Foundation's GCC since October 2001. The Free Software Foundation does not distribute binaries, only sources. Its licensing of the run-time library for Ada (and other languages) allows the development of proprietary software without necessarily imposing the terms of the GPL.
Most GNU/Linux distributions and several distributions for other platforms include prebuilt binaries; see below.
For technical reasons, we recommend against using the Ada compilers included in GCC 3.1, 3.2, 3.3 and 4.0. Instead, we recommend using GCC 3.4, 4.1 or later, or one of the releases from AdaCore (3.15p, GPL Edition or Pro).
Since October 2003, AdaCore merge most of their changes from GNAT Pro into GCC during Stage 1; this happens once for each major release. Since GCC 3.4, AdaCore has gradually added support for revised language standards, first Ada 2005 and now Ada 2012.
GCC version 4.4 switched to version 3 of the GNU General Public License and grants a Runtime Library Exception similar in spirit to the GNAT Modified General Public License used in all previous versions. This Runtime Library Exception applies to run-time libraries for all languages, not just Ada.
As of GCC 4.7, released on 2012-03-22:
Languages supported | Ada 83, Ada 95, Ada 2005, parts of Ada 2012, C, C++, Fortran 95, Java, Objective-C, Objective-C++ (and others) |
---|---|
License for the run-time library | GPL version 3 with Runtime Library Exception |
Native platforms | none (source only) |
Cross platforms | none (source only) |
Compiler back-end | GCC 4.7 |
Available from | http://gcc.gnu.org/ in source only form. |
Support | Volunteer; public bug database |
Add-ons included | none |
The GNU Ada Project
[edit | edit source]The GNU Ada Project provides source and binary packages of various GNAT versions for several operating systems, and, importantly, the scripts used to create the packages. This may be helpful if you plan to port the compiler to another platform or create a cross-compiler; there are instructions for building your own GNAT compiler for GNU/Linux and Mac OS X users.
Both GPL and GMGPL or GCC Runtime Library Exception versions of GNAT are available.
Languages supported | Ada 83, Ada 95, Ada 2005, C. (Some distributions also support Ada 2012, Fortran 90, Java, Objective C and Objective C++) |
---|---|
License for the run-time library | pure, GNAT-modified GPL, or GCC Runtime Library Exception |
Native platforms | Fedora Core 4 and 5, MS-DOS, OS/2, Solaris 10, SuSE 10, Mac OS X, (more?) |
Cross platforms | none |
Compiler back-end | GCC 2.8.1, 3.4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 (various binary packages) |
Available from | Sourceforge |
Support | Volunteer; public bug database |
Add-ons included | AdaBrowse, ASIS, Booch Components, Charles, GPS, GtkAda (more?) |
A# (A-Sharp, a.k.a. Ada for .NET)
[edit | edit source]This compiler is historical as it has now been merged into GNAT GPL Edition and GNAT Pro.
A# is a port of Ada to the .NET Platform. A# was originally developed at the Department of Computer Science at the United States Air Force Academy which distribute A# as a service to the Ada community under the terms of the GNU general public license. A# integrates well with Microsoft Visual Studio 2005, AdaGIDE and the RAPID open-source GUI Design tool. As of 2006-06-06:
Languages supported | Ada 83, Ada 95, C |
---|---|
License for the run-time library | pure GPL |
Native platforms | Microsoft .NET |
Cross platforms | none |
Compiler back-end | GCC 3.4 (GNAT GPL 2006 Edition?) |
Available from | http://sourceforge.net/projects/asharp/ |
Support | None (but see GNAT Pro) |
Add-ons included | none. |
GNAT for AVR microcontrollers
[edit | edit source]Rolf Ebert and others provide a version of GNAT configured as a cross-compiler to various AVR microcontrollers, as well as an experimental Ada run-time library suitable for use on the microcontrollers. As of Version 1.1.0 (2010-02-25):
Languages supported | Ada 83, Ada 95, Ada 2005, C |
---|---|
License for the run-time library | GNAT-Modified GPL |
Host platforms | GNU/Linux and Microsoft Windows on i386 |
Target platforms | Various AVR 8-bit microcontrollers |
Compiler back-end | GCC 4.7 |
Available from | http://avr-ada.sourceforge.net/ |
Support | Volunteer; public bug database |
Add-ons included | partial Ada run time system, AVR peripherals support library |
GNAT for LEON
[edit | edit source]The Real-Time Research Group of the Technical University of Madrid (UPM, Universidad Politécnica de Madrid) wrote a Ravenscar-compliant real-time kernel for execution on LEON processors and a modified run-time library. They also provide a GNAT cross-compiler. As of version 2.0.1:
Languages supported | Ada 83, Ada 95, Ada 2005, C |
---|---|
License for the run-time library | pure GPL |
Native platforms | none |
Cross platforms | GNU/Linux on i686 to LEON2 bare boards |
Compiler back-end | GCC 4.1 (GNAT GPL 2007 Edition) |
Available from | http://www.dit.upm.es/ork/ |
Support | ? |
Add-ons included | OpenRavenscar real-time kernel; minimal run-time library |
GNAT for Macintosh (Mac OS X)
[edit | edit source]GNAT for Macintosh provides both FSF (GMGPL) and AdaCore (GPL) versions of GNAT with Xcode and Carbon integration and bindings.
Note that this site was last updated for GCC 4.3 and Mac OS X Leopard (both PowerPC and Intel-based). Aside from the work on integration with Apple’s Carbon graphical user interface and with Xcode 3.1 it may be preferable to see above.
There is also support at MacPorts; the last update (at 25 Nov 2011) was for GCC 4.4.2.
Prebuilt packages as part of larger distributions
[edit | edit source]Many distributions contain prebuilt binaries of GCC or various public releases of GNAT from AdaCore. Quality varies widely between distributions. The list of distributions below is in alphabetical oder. (Please keep it that way.)
AIDE (for Microsoft Windows)
[edit | edit source]AIDE — Ada Instant Development Environment is a complete one-click, just-works Ada distribution for Windows, consisting of GNAT, comprehensive documentation, tools and libraries. All are precompiled, and source code is also available. The installation procedure is particularly easy (just unzip to default c:\aide and run). AIDE is intended for beginners and teachers, but can also be used by advanced users.
Languages supported | Ada 83, Ada 95, C |
---|---|
License for the run-time library | GNAT-modified GPL |
Native platforms | Microsoft Windows on i386 |
Cross platforms | none |
Compiler back-end | GCC 2.8.1 |
Available from | https://stef.genesix.org/aide/aide.html |
Support | stef@genesix.org |
Add-ons included | ASIS, GDB, GPS, GtkAda, Texinfo (more?) |
Cygwin (for Microsoft Windows)
[edit | edit source]Cygwin, the Linux-like environment for Windows, also contains a version of the GNAT compiler. The Cygwin version of GNAT is older than the MinGW version and does not support DLLs and Multi-Threading (as of 11.2004).
Debian (GNU/Linux and GNU/kFreeBSD)
[edit | edit source]There is a Debian Policy for Ada which tries to make Debian the best Ada development and deployment platform. The development platform includes the compiler and many libraries, pre-packaged and integrated so as to be easy to use in any program. The deployment platform is the renowned stable distribution, which is suitable for mission-critical workloads and enjoys long life cycles, typically 3 to 4 years. Because Debian is a binary distribution, it is possible to deploy non-free, binary-only programs on it while enjoying all the benefits of a stable platform. Compiler choices are conservative for this reason, and the Policy mandates that all Ada programs and libraries be compiled with the same version of GNAT. This makes it possible to use all libraries in the same program. Debian separates run-time libraries from development packages, so that end users do not have to install the development system just to run a program.
The GNU Ada compiler can be installed on a Debian system with this command:
aptitude install gnat
This will also give you a list of related packages, which are likely to be useful for an Ada programmer.
Debian is unique in that it also allows programmers to use some of GNAT's internal components by means of two libraries:
- libgnatvsn (licensed under GNAT-Modified GPL) and
- libgnatprj (the project manager, licensed under pure GPL).
Debian packages make use of these libraries.
In the table below, the information about the future Debian 8.0 Jessie is accurate as of October 2014 and will change.
3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie | |
---|---|---|---|---|---|---|
Release date | June 2005 | April 2007 | February 2009 | February 2011 | May 2013 | April 2015 |
Languages supported | Ada 83, Ada 95, C | +Ada 2005, parts of Ada 2012, C, C++, Fortran 95, Java, Objective-C, Objective-C++ | +Ada 2012 | |||
License for the run-time library | GNAT-modified GPL (both ZCX and SJLJ versions starting from 5.0 Lenny) | GPL version 3 with Run-time library exception | ||||
Native platforms: | 3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie |
alpha | yes | yes | ||||
amd64 | yes | yes | yes | yes | yes | |
armel | preliminary | yes | yes | |||
armhf | yes | yes | ||||
hppa | yes | yes | yes | |||
hurd-i386 | yes | yes | ||||
i386 | yes | yes | yes | yes | yes | yes |
ia64 | yes | yes | yes | yes | ||
kfreebsd-amd64 | yes | yes | yes | |||
kfreebsd-i386 | yes | yes | yes | yes | yes | |
mips | yes | yes | yes | yes | yes | |
mipsel | yes | yes | yes | yes | yes | |
powerpc | yes | yes | yes | yes | yes | yes |
ppc64 | yes | yes | yes | yes | ||
s390 | yes | yes | yes | yes | s390x | |
sparc | yes | yes | yes | yes | yes | yes |
Cross platforms | none | |||||
Compiler back-end | GCC 2.8.1 | GCC 4.1 | GCC 4.3 | GCC 4.4 | GCC 4.6 | GCC 4.9 |
Available from | http://www.debian.org/ | |||||
Support | Volunteer; public bug database; paid support available from third parties; public mailing list | |||||
Add-ons included | 3.1 Sarge | 4.0 Etch | 5.0 Lenny | 6.0 Squeeze | 7.0 Wheezy | 8.0 Jessie |
ada-reference-manual | 1995 | 1995 | 1995 | 2005 | 2012 | 2012 |
AdaBindX | 0.7.2 | |||||
AdaBrowse | 4.0.2 | 4.0.2 | 4.0.2 | 4.0.3 | 4.0.3 | - |
AdaCGI | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
AdaControl | 1.6r8 | 1.9r4 | 1.12r3 | 1.12r3 | 1.16r11 | |
APQ (with PostgreSQL) | 3.0 | 3.2 | 3.2 | |||
AdaSockets | 1.8.4.7 | 1.8.4.7 | 1.8.4.7 | 1.8.8 | 1.8.10 | 1.8.11 |
Ahven | 1.2 | 1.7 | 2.1 | 2.4 | ||
Alog | 0.1 | 0.3 | 0.4.1 | - | ||
anet | 0.1 | 0.3.1 | ||||
ASIS | 3.15p | 2005 | 2007 | 2008 | 2010 | 2014 |
AUnit | 1.01 | 1.03 | 1.03 | 1.03 | 1.03 | 3.7.1 |
AWS | 2.0 | 2.2 | 2.5 prerelease | 2.7 | 2.10.2 | 3.2.0 |
Charles | 2005-02-17 | (superseded by Ada.Containers in gnat) | ||||
Florist | 3.15p | 2006 | 2006 | 2009 | 2011 | 2014 |
GDB | 5.3 | 6.4 | 6.8 | 7.0.1 | 7.4.1 | 7.7.1 |
GLADE | 3.15p | 2006 | (superseded by PolyORB) | |||
GMPAda | 0.0.20091124 | 0.0.20120331 | 0.0.20131223 | |||
GNADE | 1.5.1 | 1.6.1 | 1.6.1 | 1.6.2 | 1.6.2 | - |
GNAT Checker | 1999-05-19 | (superseded by AdaControl) | ||||
GPRBuild | 1.3.0w | 2011 | 2014 | |||
GPS | 2.1 | 4.0.1 | 4.0.1 | 4.3 | 5.0 | 5.3 |
GtkAda | 2.4 | 2.8.1 | 2.8.1 | 2.14.2 | 2.24.1 | 2.24.4 |
Log4Ada | 1.0 | 1.2 | 1.2 | |||
Narval | 1.10.2 | |||||
OpenToken | 3.0b | 3.0b | 3.0b | 4.0b | 4.0b | 5.0a |
PC/SC Ada | 0.6 | 0.7.1 | 0.7.2 | |||
PolyORB | 2.6 prerelease | 2.8 prerelease | 2.11 prerelease | |||
PLPlot | 5.9.0 | 5.9.5 | 5.9.5 | 5.10.0 | ||
Templates Parser | 10.0+20060522 | 11.1 | 11.5 | 11.6 | 11.8 | |
TextTools | 2.0.3 | 2.0.3 | 2.0.5 | 2.0.6 | 2.1.0 | |
XML/Ada | 1.0 | 2.2 | 3.0 | 3.2 | 4.1 | 4.4 |
XML-EZ-out | 1.06 | 1.06.1 | 1.06.1 |
The ADT plugin for Eclipse (see section ObjectAda from Aonix) can be used with GNAT as packaged for Debian Etch. Specify "/usr" as the toolchain path.
DJGPP (for MS-DOS)
[edit | edit source]DJGPP has GNAT as part of their GCC distribution.
DJGPP is a port of a comprehensive collection of GNU utilities to MS-DOS with 32-bit extensions, and is actively supported (as of 1.2005). It includes the whole GCC compiler collection, that now includes Ada. See the DJGPP website for installation instructions.
DJGPP programs run also in a DOS command box in Windows, as well as in native MS-DOS systems.
FreeBSD and DragonFly
[edit | edit source]FreeBSD's ports collection has an Ada framework with an expanding set of software packages. The Framework is currently built by FSF GCC 6.3.1, although FSF GCC 5.4 can optionally be used instead. The AdaCore GPL compilers are not present. There are several reasons for this, not the least of which is the addition maintenance of multiple compilers is significant. There are no non-GCC based Ada compilers represented in ports either.
While FreeBSD does have a snapshot that goes with each release, the ports are updating in a rolling fashion continuously, and the vast majority of users prefer the "head" of ports which has the latest packages.
Languages supported | Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran |
---|---|
License for the run-time library | GPLv3 with Runtime Library Exception v3 |
Native platforms | FreeBSD i386, FreeBSD AMD64, FreeBSD ARM64, DragonFly x86-64 |
Cross platforms | FreeBSD/DragonFly->Android (targets ARMv7 and x86), FreeBSD/DragonFly->FreeBSD/ARM64 (targets Aarch64) |
Compiler back-end | GCC 6.3.1 |
Available from | http://www.freebsd.org, https://github.com/DragonFlyBSD/DPorts |
Support | Volunteer; public bug database |
There are two ways to install the software. The quickest and easiest way is to install prebuilt binaries using the command "pkg install <pkg name>". For example, to install the GNAT Programming Studio and all of its dependencies including the GNAT compiler, all you need is one command:
pkg install gps-ide
If a specific package is not available, or the user just prefers to build from source (this can take a long time), then a typical command would be:
cd /usr/ports/devel/gps && make install clean
As with the binary installation, if any dependencies are missing they will be built first, also from source.
Available software as of 8 February 2017
Directory | Common Name | version | pkg name |
---|---|---|---|
archivers/zip-ada | Zip-Ada (Library) | 52 | zip-ada |
cad/ghdl | GNU VHDL simulator | 0.33 | ghdl |
databases/adabase | Thick bindings to Postgres, MySQL and SQLite | 3.0 | adabase |
databases/apq | Ada95 database interface library | 3.2.0 | apq |
databases/apq-mysql | APQ MySQL driver | 3.2.0 | apq-mysql |
databases/apq-odbc | APQ ODBC driver | 3.2.0 | apq-odbc |
databases/apq-pgsql | APQ PostgreSQL driver | 3.2.0 | apq-pgsql |
devel/ada-util | Ada 2005 app utilities (Library) | 1.8.0 | ada-util |
devel/adaid | UUID generation library | 0.0.1 | adaid |
devel/adabooch | Ada95 Booch Components (Library) | 2016-03-21 | adabooch |
devel/adacurses | AdaCurses (Binding) | 2015-08-08 | adacurses |
devel/afay | AFlex and AYACC parser generators | 041111 | afay |
devel/ahven | Ahven (Unit Test Library) | 2.6 | ahven |
devel/alog | Stackable logging framework | 0.5.2 | alog |
devel/aunit | Unit testing framework | 2016 | aunit |
devel/florist-gpl | Florist (Posix Binding) | 2016 | florist-gpl |
devel/gnatcoll | GNAT Component Collection | 2016 | gnatcoll |
devel/gnatpython | GNATPython (python-based test framework) | 2014-02-24 | gnatpython |
devel/gprbuild | GPRbuild (Multi-language build tool) | 20160609 | gprbuild |
devel/gps | GNAT Programming Studio | 2016 | gps-ide |
devel/libspark2012 | SPARK 2012 library source files | 2012 | libspark2012 |
devel/matreshka | Matreshka (Info Systems Library) | 0.7.0 | matreshka |
devel/pcsc-ada | PCSC library | 0.7.3 | pcsc-ada |
devel/pragmarcs | PragmAda Reusable Components | 20161207 | pragmarcs |
devel/sdl_gnat | GNAT SDL bindings (Thin) | 2013 | sdl_gnat |
devel/simple_components | Simple Ada components | 4.18 | simple_components |
dns/ironsides | Spark/Ada Ironsides DNS Server | 2015-04-15 | ironsides |
graphics/generic_image_decoder | image decoder library | 05 | generic_image_decoder |
lang/adacontrol | AdaControl (Construct detection tool) | 1.17r3 | adacontrol |
lang/asis | Ada Semantic Interface Specification | 2016 | asis |
lang/gcc5-aux | GNAT Ada compiler (FSF GCC) | 5.4 (2016-06-03) | gcc5-aux |
lang/gcc6-aux | GNAT Ada compiler (FSF GCC) | 6.3.1 (2017-02-02) | gcc6-aux |
lang/gnat_util | GNAT sources (helper Library) | 2017-02-02 | gnat_util |
lang/gnatcross-aarch64 | FreeBSD/ARM64 cross-compiler, Aarch64 | 2017-02-02 (6.3.1) | gnatcross-aarch64 |
lang/gnatcross-binutils-aarch64 | GNU Binutils used by FreeBSD/ARM64 cross-compiler | 2.27 | gnatcross-binutils-aarch64 |
lang/gnatcross-sysroot-aarch64 | FreeBSD/ARM64 sysroot | 1 | gnatcross-sysroot-aarch64 |
lang/gnatdroid-armv7 | Android 5.0 cross-compiler, ARMv7 | 2017-02-02 (6.3.1) | gnatdroid-armv7 |
lang/gnatdroid-binutils | GNU Binutils used by Android cross-compiler | 2.27 | gnatdroid-binutils |
lang/gnatdroid-binutils-x86 | GNU Binutils used by Android cross-compiler (x86) | 2.27 | gnatdroid-binutils-x86 |
lang/gnatdroid-sysroot | Android API 4.0 to 6.0 sysroot | 23 | gnatdroid-sysroot |
lang/gnatdroid-sysroot-x86 | Android API 4.4 to 6.0 sysroot (x86) | 23 | gnatdroid-sysroot-x86 |
lang/gnatdroid-x86 | Android 5.0 cross-compiler, x86 | 2017-02-02 (6.3.1) | gnatdroid-x86 |
lang/lua-ada | Ada bindings for Lua | 1.0 | ada-lua |
math/plplot-ada | PLplot Ada bindings | 5.12.0 | plplot-ada |
misc/excel-writer | Excel output library | 15 | excel-writer |
misc/ini_file_manager | Configuration file library | 03 | ini_file_manager |
net/adasockets | IPv4 socket library | 1.10 | adasockets |
net/anet | Network library (IPv4 and IPv6) | 0.3.4 | anet |
net/polyorb | PolyORB (CORBA/SOAP/DSA middleware) | 2.11.1 (2014) | polyorb |
security/libadacrypt | Cryptography Library (symm & asymm) | 20151019 | libadacrypt |
security/libsparkcrypto | LibSparkCrypto (Cryptography Library) | 0.1.1 | libsparkcrypto |
shells/sparforte | Shell and scripting language for mission-critical projects | 2.0.2 | spareforte |
textproc/adabrowse | AdaBrowse (Ada95 HTML doc. generator) | 4.0.3 | adabrowse |
textproc/opentoken | Ada Lex analyzer and parser | 6.0b | opentoken |
textproc/py-sphinxcontrib-adadomain | Sphinx documentation generator for Ada | 0.1 | py27-sphinxcontrib-adadomain |
textproc/templates_parser | AWS Template Parser library | 17.0.0 | templates_parser |
textproc/words | Words (Latin/English dictionary) | 1.97F | words |
textproc/xml_ez_out | XML output (Library) | 1.06 | xml_ez_out |
textproc/xmlada | XML/Ada (Library) | 17.0.0 | xmlada |
www/aws | Ada Web Server | 17.0.1 | aws |
www/aws-demos | Ada Web Server demos | 17.0.1 | aws-demos |
x11-toolkits/gtkada | GTK2/Ada (bindings) | 2.24.4 | gtkada |
x11-toolkits/gtkada3 | GTK3/Ada (bindings) | 3.14.2 | gtkada3 |
Gentoo GNU/Linux
[edit | edit source]The GNU Ada compiler can be installed on a Gentoo system using emerge:
emerge dev-lang/gnat
In contrast to Debian, Gentoo is primarily a source distribution, so many packages are available only in source form, and require the user to recompile them (using emerge).
Also in contrast to Debian, Gentoo supports several versions of GNAT in parallel on the same system. Be careful, because not all add-ons and libraries are available with all versions of GNAT.
Languages supported | Ada 83, Ada 95, Ada 2005, C (more?) |
---|---|
License for the run-time library | pure or GNAT-modified GPL (both available) |
Native platforms | Gentoo GNU/Linux on amd64, powerpc and i386 |
Cross platforms | none |
Compiler back-end | GCC 3.4, 4.1 (various binary packages) |
Available from | http://www.gentoo.org/ (see other Gentoo dev-ada packages) |
Support | Volunteer; public bug database |
Add-ons included | AdaBindX, AdaBroker, AdaDoc, AdaOpenGL, AdaSockets, ASIS, AUnit, Booch Components, CBind, Charles, Florist, GLADE, GPS, GtkAda, XML/Ada |
Mandriva Linux
[edit | edit source]The GNU Ada compiler can be installed on a Mandriva system with this command:
urpmi gnat
MinGW (for Microsoft Windows)
[edit | edit source]MinGW — Minimalist GNU for Windows contains a version of the GNAT compiler.
The current version of MinGW (5.1.6) contains gcc-4.5.0. This includes a fully functional GNAT compiler. If the automatic downloader does not work correctly you can download the compiler directly: pick gcc-4.5.0-1 from MinGW/BaseSystem/GCC/Version4/
old instructions
[edit | edit source]The following list should help you with the installation. (I may have forgotten something — but this is wiki, just add to the list)
- Install MinGW-3.1.0-1.exe
- extract binutils-2.15.91-20040904-1.tar.gz
- extract mingw-runtime-3.5.tar.gz
- extract gcc-core-3.4.2-20040916-1.tar.gz
- extract gcc-ada-3.4.2-20040916-1.tar.gz
- extract gcc-g++-3.4.2-20040916-1.tar.gz (Optional)
- extract gcc-g77-3.4.2-20040916-1.tar.gz (Optional)
- extract gcc-java-3.4.2-20040916-1.tar.gz (Optional)
- extract gcc-objc-3.4.2-20040916-1.tar.gz (Optional)
- extract w32api-3.1.tar.gz
- Install mingw32-make-3.80.0-3.exe (Optional)
- Install gdb-5.2.1-1.exe (Optional)
- Install MSYS-1.0.10.exe (Optional)
- Install msysDTK-1.0.1.exe (Optional)
- extract msys-automake-1.8.2.tar.bz2 (Optional)
- extract msys-autoconf-2.59.tar.bz2 (Optional)
- extract msys-libtool-1.5.tar.bz2 (Optional)
I have made good experience in using D:\MinGW as target directory for all installations and extractions.
Also noteworthy is that the Windows version for GNAT from Libre is also based on MinGW.
In gcc-3.4.2-release_notes.txt from MinGW site reads: please check that the files in the /lib/gcc/mingw32/3.4.2/adainclude and adalib directories are flagged as read-only. This attribute is necessary to prevent them from being deleted when using gnatclean to clean a project.
So be sure to do this.
OpenCSW (for Solaris on SPARC and x86)
[edit | edit source]OpenCSW has binary packages of GCC 3.4.6 and 4.6.2 with Ada support. The package names are gcc3ada and gcc4ada respectively.
Languages supported | Ada 83, Ada 95, parts of Ada 2005, C, C++, Fortran 95, Java, Objective-C, Objective-C++ |
---|---|
License for the run-time library | GNAT-modified GPL |
Native platforms | Oracle Solaris and OpenSolaris on SPARC and x86 |
Cross platforms | none |
Compiler back-end | GCC 3.4.6 and 4.6.2 (both available) |
Support | ? |
Available from | http://www.opencsw.org/ |
Add-ons included | none (?) |
pkgsrc: NetBSD, DragonFly, FreeBSD and Solaris
[edit | edit source]The pkgsrc portable package file system has a small Ada framework. It is based on FSF GCC 5.4 currently and the FSF GCC 6.2 is available as well. The AdaCore GPL versions are not present, nor are non-GCC based compilers.
The pkgsrc system is released in quarterly branches, which are normally recommended. However, a user could also choose the "head" which would the very latest package versions. The pkgsrc system supports 21 platforms, but for Ada this is potentially limited to 5 due to the bootstrap compiler requirement: NetBSD, DragonFly, SunOS (Solaris/Illumos), OpenBSD/MirBSD, and FreeBSD.
Languages supported | Ada 83, Ada 95, Ada 2005, Ada 2012, C, C++, ObjC, Fortran |
---|---|
License for the run-time library | GPLv3 with Runtime Library Exception v3 |
Native platforms | NetBSD i386 and amd64, DragonFly x86-64, FreeBSD i386 and amd64, Solaris i386 and x86_64 |
Cross platforms | None |
Compiler back-end | GCC 5.4 (GCC 4.9 and 6 available) |
Available from | http://www.pkgsrc.org, status: http://www.pkgsrc.se |
Support | Volunteer; public bug database |
There are two ways to install the software. The quickest and easiest way is to install prebuilt binaries using the command "pkg_add <pkg name>". For example, to install the GNAT Programming Studio and all of its dependencies including the GNAT compiler, all you need is one command:
pkg_add gps
If a specific package is not available, or the user just prefers to build from source (this can take a long time), then a typical command would be:
cd /usr/pkg/devel/gps && bmake install
As with the binary installation, if any dependencies are missing they will be built first, also from source.
Available software as of 14 December 2016
Directory | Common Name | version | pkg name |
---|---|---|---|
cad/ghdl | GNU VHDL simulator | 0.32rc1 | ghdl |
devel/florist | Florist (Posix Binding) | 2012 | florist-gpl |
devel/gnatpython | GNATPython (python-based test framework) | 2011-09-12 | gnatpython |
devel/gprbuild-aux | GPRbuild (Multi-language build tool) | 2016-06-09 | gprbuild-aux |
lang/gcc-aux | GNAT Ada compiler (FSF GCC) | 4.9.2 (2014-10-23) | gcc-aux |
lang/gcc5-aux | GNAT Ada compiler (FSF GCC) | 5.4.0 (2016-06-03) | gcc5-aux |
lang/gcc6-aux | GNAT Ada compiler (FSF GCC) | 6.2.0 (2016-08-22) | gcc6-aux |
textproc/xmlada | XML/Ada (Library) | 4.4.0 | xmlada |
www/aws | Ada Web Server | 3.1.0.0 (w) | aws |
www/aws-demos | Ada Web Server demos | 3.1.0.0 (w) | aws-demos |
x11/gtkada | GTK/Ada (bindings) | 2.24.4 | gtkada |
SuSE Linux
[edit | edit source]All versions of SuSE Linux have a GNAT compiler included. SuSE versions 9.2 and higher also contains ASIS, Florist and GLADE libraries. The following two packages are needed:
gnat gnat-runtime
For SuSE version 12.1, the compiler is in the package
gcc46-ada libada46
For 64 bit system you will need the 32 bit compatibility packages as well:
gnat-32bit gnat-runtime-32bit
Ubuntu
[edit | edit source]Ubuntu (and derivatives like Kubuntu, Xubuntu...) is a Debian-based Linux distribution, thus the installation process described above can be used. Graphical package managers like Synaptic or Adept can also be employed to select the Ada packages.
ICC from Irvine Compiler Corporation
[edit | edit source]Irvine Compiler Corporation provides native and cross compilers for various platforms.[1] The compiler and run-time system support development of certified, safety-critical software.
Commercial, proprietary. No-cost evaluation is possible on request. Royalty-free redistribution of the run-time system is allowed.
Janus/Ada 83 and 95 from RR Software
[edit | edit source]RR Software offers native compilers for MS-DOS, Microsoft Windows and various Unix and Unix-like systems, and a library for Windows GUI programming called CLAW. There are academic, personal and professional editions, as well as support options.
Janus/Ada 95 supports subset of Ada 2007 and Ada 2012 features.
Commercial but relatively cheap; proprietary.
MAXAda from Concurrent
[edit | edit source]Concurrent offers MAXAda, an Ada 95 compiler for Linux/Xeon and PowerPC platforms, and Ada bindings to POSIX and X/Motif.[2]
Commercial, proprietary.
ObjectAda from PTC (formerly Aonix/Atego)
[edit | edit source]PTC offers ObjectAda native (Windows, some flavors of Unix, and Linux) and cross (PPC, Intel, VxWorks, and ERC32) compilers.
Limited support of Ada 2012 is available.
Commercial, proprietary.
PowerAda from OC Systems
[edit | edit source]OC Systems offers Ada compilers and bindings to POSIX and X-11:
- PowerAda, an Ada 95 compiler for Linux and AIX,
- LegacyAda/390, an Ada 83 compiler for IBM System 370 and 390 mainframes
Commercial, proprietary.
ApexAda from PTC (formerly IBM Rational)
[edit | edit source]PTC ApexAda for native and embedded development.
Commercial, proprietary.
SCORE from DDC-I
[edit | edit source]DDC-I offers its SCORE cross-compilers for embedded development. SCORE stands for Safety-Critical, Object-oriented, Real-time Embedded.
Commercial, proprietary.
TADS from Tartan
[edit | edit source]Tartan offers the Tartan Ada Development System (TADS), with cross-compilers for some digital signal processors.
Commercial, proprietary.
XD Ada from DXC
[edit | edit source]XD Ada is an Ada 83 cross-compiler for embedded development. Hosts include VAX, Alpha and Integrity Servers running OpenVMS. Targets include Motorola 68000 and MIL-STD-1750A processors.
Commercial, proprietary.
XGC Ada from XGC Software
[edit | edit source]XGC compilers are GCC with custom run-time libraries suitable for avionics and space applications. The run-time kernels are very small and do not support exception propagation (i.e. you can handle an exception only in the subprogram that raised it).
Commercial but some versions are also offered as free downloads. Free Software.
Languages supported | Ada 83, Ada 95, C |
---|---|
License for the run-time library | GNAT-Modified GPL |
Native platforms | none |
Cross platforms | Hosts: sun-sparc-solaris, pc-linux2.*; targets are bare boards with ERC32, MIL-STD-1750A, Motorola 68000 family or Intel 32-bit processors. PowerPC and Intel 80186 targets on request. |
Compiler back-end | GCC 2.8.1 |
Available from | http://www.xgc.com/ |
Support | Commercial |
Add-ons included | Ravenscar-compliant run-time kernels, certified for avionics and space applications; gdb cross-debugger; target simulator. |
References
[edit | edit source]