Drake is a runtime library written completely in Ada to replace the GNAT runtime.
A primary project goal is re-implementing the Predefined Language Environment in Annex A, for real world applications.
Read the wiki for more information.
- Darwin (from 10.6, x86, 32bit/64bit)
- FreeBSD (from 8, x86, 32bit/64bit)
- GNU/Linux (from kernel 2.6 and glibc 2.24, x86, 32bit/64bit)
- Windows (from XP, x86, 32bit/64bit)1
- gcc
- translated headers
Install headmaster to convert the headers on your system, or download them from pre-translated headers page.
Clone this repository. :
$ git clone git://github.com/ytomino/drake.git
The master branch is targeted for gcc 7. Checkout a branch corresponds to the version of your gcc. :
$ git checkout gcc-6 # for example
Run the make
command with some variables, specify a translated headers path to IMPORTDIR
and a destination path to RTSDIR
. :
$ make IMPORTDIR=... RTSDIR=...
Read the build page for details.
Prepare the source code of a sample application. :
$ cat > hello.adb with Ada.Text_IO; procedure hello is begin Ada.Text_IO.Put_Line ("Hello, Drake runtime!"); end hello; ^D
Build drake. :
$ make -C ~/Downloads/drake/source \ # drake source path IMPORTDIR=~/Downloads/i686-apple-darwin9 \ # translated headers path RTSDIR=$PWD/rts-drake # destination path
Build the sample application. :
$ gnatmake hello.adb --RTS=rts-drake
Specify
--RTS
option ofgnatmake
to use the alternative runtime.Run the sample application. :
$ ./hello Hello, Drake runtime!
Many features are unimplemented and there are several intentional ACATS violations for usability. See incompatibility features page.
64bit Windows support is under construction, limited and experimental.β©
GNAT Community Edition is not supported. That was previously called GNAT GPL Edition.β©