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

DEC Ada is an Ada 83 compiler for OpenVMS. While "DEC Ada" is probably the name most users know, the compiler is now called "HP Ada". It had previously been known also by names of "VAX Ada" and "Compaq Ada".

GNAT, the GNU Ada Compiler from AdaCore and the Free Software Foundation

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.

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 Edition

This 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.

GNAT Pro

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/.

GCC

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.

The GNU Ada Project

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.

A# (A-Sharp, a.k.a. Ada for .NET)

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:

GNAT for AVR microcontrollers

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):

GNAT for LEON

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:

GNAT for Macintosh (Mac OS X)

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

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)

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.

Cygwin (for Microsoft Windows)

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)

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.

DJGPP (for MS-DOS)

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

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.

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

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.

Mandriva Linux

MinGW (for Microsoft Windows)

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

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.

pkgsrc: NetBSD, DragonFly, FreeBSD and Solaris

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.

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

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

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

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

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.

Commercial but relatively cheap; proprietary.

MAXAda from Concurrent

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 Atego (formerly Aonix)

Atego offers native and cross compilers for various platforms. They come with an IDE, a debugger, a plug-in for Eclipse and a POSIX binding[3].

On Microsoft Windows and GNU/Linux on i386, Aonix offers two pricing models, at the customer's option: either a perpetual license fee with optional support, or just the yearly support fee: For Linux, that's $3000 for a single user or $12,000 for a 5-user service pack. See the full press release.

In addition, they offer "ObjectAda Special Edition": a no-cost evaluation version of ObjectAda that limits the size of programs that can be compiled with it, but is otherwise fully functional, with IDE and debugger. Free registration required.

A recent contribution by Atego is ADT for Eclipse. The Ada Development Tools add Ada language support to the Eclipse open source development platform. ADT can be used with Aonix compilers, and with GNAT. An open source vendor supported project is outlined for ADT at Eclipse. Codenamed Hibachi and showcased at the Ada Conference UK 2007 and during Ada-Europe 2007, the project has now been officially created.

XGC Ada from XGC Software

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.

Manage research, learning and skills at IT1me. Create an account using LinkedIn to manage and organize your IT knowledge. IT1me works like a shopping cart for information -- helping you to save, discuss and share.

Manage research, learning and skills at IT1me. Create an account using LinkedIn to manage and organize your IT knowledge. IT1me works like a shopping cart for information -- helping you to save, discuss and share.