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
- Use the official versions of gcc. [2]
- 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.
[1] | 64bit Windows support is under construction, limited and experimental. |
[2] | GNAT Community Edition is not supported. That was previously called GNAT GPL Edition. |