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.
Please, read the wiki for more information.
- Darwin (from 10.5, x86, 32bit/64bit)
- FreeBSD (from 7, x86, 32bit/64bit)
- Linux (from 2.6, x86, 32bit/64bit)
- Windows (from XP, x86, 32bit/64bit)1
- gcc
Use of gcc instead of the GNAT GPL Edition is required.
- translated headers
Install headmaster to convert the headers on your system, or download them from pre-translated headers page.
for gcc-4.9 :
$ git clone git://github.com/ytomino/drake.git
for old gcc (from 4.5 until 4.8) :
$ VERSION=$(expr $(gcc -dumpversion) : '^\([0-9]*\.[0-9]*\)') # X.Y
$ git clone git://github.com/ytomino/drake.git -b gcc-$VERSION
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.↩