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.โฉ