# 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

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.

``` bash
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

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

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\".

-   Ada for OpenVMS Alpha Installation
    Guide
    (PDF)
-   Ada for OpenVMS VAX Installation
    Guide
    (PDF)

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

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

As of may 2022, AdaCore no longer supports GNAT GPL. It has been
replaced with Alire, a package manager for Ada
sources, which also provides toolchains. The following is no longer
relevant for post May 2022 users.

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.

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

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

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

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

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

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. `<small>`{=html}(Some distributions also support Ada 2012, Fortran 90, Java, Objective C and Objective C++)`</small>`{=html}
  ---------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------
  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, `<small>`{=html}(more?)`</small>`{=html}
  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 `<small>`{=html}(various binary packages)`</small>`{=html}
  Available from                     Sourceforge
  Support                            Volunteer; public bug database
  Add-ons included                   AdaBrowse, ASIS, Booch Components, Charles, GPS, GtkAda `<small>`{=html}(more?)`</small>`{=html}

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

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

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

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)

GNAT for Macintosh provides both FSF (GMGPL)
and AdaCore (GPL) versions of GNAT with
Xcode and Carbon "wikilink")
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

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.

  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)

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
`<small>`{=html}(as of 11.2004)`</small>`{=html}.

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

                                     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)

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

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>`{=html}\". 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.

  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

The GNU Ada compiler can be installed on a Mandriva system with this
command:

`urpmi gnat`

#### MinGW (for Microsoft Windows)

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

The following list should help you with the installation. (I may have
forgotten something --- but this is wiki, just add to the list)

1.  Install `<var>`{=html}MinGW-3.1.0-1.exe`</var>`{=html}
    1.  extract
        `<var>`{=html}binutils-2.15.91-20040904-1.tar.gz`</var>`{=html}
    2.  extract `<var>`{=html}mingw-runtime-3.5.tar.gz`</var>`{=html}
    3.  extract
        `<var>`{=html}gcc-core-3.4.2-20040916-1.tar.gz`</var>`{=html}
    4.  extract
        `<var>`{=html}gcc-ada-3.4.2-20040916-1.tar.gz`</var>`{=html}
    5.  extract `<var>`{=html}gcc-g++-3.4.2-20040916-1.tar.gz
        (Optional)`</var>`{=html}
    6.  extract `<var>`{=html}gcc-g77-3.4.2-20040916-1.tar.gz
        (Optional)`</var>`{=html}
    7.  extract `<var>`{=html}gcc-java-3.4.2-20040916-1.tar.gz
        (Optional)`</var>`{=html}
    8.  extract `<var>`{=html}gcc-objc-3.4.2-20040916-1.tar.gz
        (Optional)`</var>`{=html}
    9.  extract `<var>`{=html}w32api-3.1.tar.gz`</var>`{=html}
2.  Install `<var>`{=html}mingw32-make-3.80.0-3.exe
    (Optional)`</var>`{=html}
3.  Install `<var>`{=html}gdb-5.2.1-1.exe (Optional)`</var>`{=html}
4.  Install `<var>`{=html}MSYS-1.0.10.exe (Optional)`</var>`{=html}
5.  Install `<var>`{=html}msysDTK-1.0.1.exe (Optional)`</var>`{=html}
    1.  extract `<var>`{=html}msys-automake-1.8.2.tar.bz2
        (Optional)`</var>`{=html}
    2.  extract `<var>`{=html}msys-autoconf-2.59.tar.bz2
        (Optional)`</var>`{=html}
    3.  extract `<var>`{=html}msys-libtool-1.5.tar.bz2
        (Optional)`</var>`{=html}

I have made good experience in using
`<var>`{=html}D:\\MinGW`</var>`{=html} 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)

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

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>`{=html}\". 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 "wikilink") 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.

Janus/Ada 95 supports subset of Ada 2007 and Ada 2012
features.

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

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

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)

PTC ApexAda
for native and embedded development.

Commercial, proprietary.

## SCORE from DDC-I

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

Tartan offers the Tartan Ada Development
System (TADS), with cross-compilers for some digital signal processors.

Commercial, proprietary.

## XD Ada from DXC

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

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

```{=html}
<references/>
```
Programming}}\|Installing es:Programación
en Ada/Instalación
