Небольшой How To по Gela
Как скачать исходные тексты из репозитория Subversion
Установите subversion и выполните команды
svn checkout http://svn.ten15.org/trunk/tendra/ svn checkout http://svn.ten15.org/trunk/contrib/
Что нужно чтобы построить Ада компилятор
Вам понадобиться Ада компилятор gnat и утилита xsltproc. Кроме этого нужно построить утилиты bmake, ayacc и aflex из contrib/
- построение bmake. Выполните makemake -f Makefile.<ваша OS>, например
cd contrib/make make -f Makefile.Linux
- построение ayacc
cd contrib/ada/aflex/src gnatmake aflex
- построение ayacc
cd contrib/ada/ayacc/src/ gnatmake ayacc
Скопируйте получившиеся утилиты в каталог доступный из PATH, например, /usr/local/bin.
Как построить Ада компилятор
Само построение выполняется командой bmake в каталоге tendra/:
cd tendra bmake YOU HAVE NOT CONFIGURED TenDRA YET Available targets are: aix cygwin32 darwin freebsd hpux irix linux netbsd openbsd osf1 qnx solaris sunos tru64 In order to configure TenDRA, please execute make with the proper target to create config.mk
Выберите вашу OS из списка и запустите bmake опять, например
bmake freebsd WITH_ADA=yes
Замечание для Linux: нужно указать формат объектных файлов (elf или aout)
bmake linux WITH_ADA=yes MACH_EXEC=elf
После при этом bmake проверит пути к нужным файлам. Откорректировать пути можно в файле mk/def/def.<OS>.mk.
Запустите построение (все в том же каталоге tendra/)
bmake bmake install
Готовый набор утилит TenDRA + Ада компилятор будет установлен в /usr/local/
Проверка работоспособности
Добавте в пути /usr/local/bin:
export PATH=$PATH:/usr/local/bin
Попробуйте скомпилять hello world на Си:
cat > hello.c << EOF
#include <stdio.h>
void main ()
{
printf ("Hello world!\n");
}
EOF
tcc hello.c
./a.out
Hello world!
Запустите набор регрессион тестов для Ады:
cd tendra/regression bmake
Особенности построения на различных платформах
Gentoo Linux
файлы crtbegin.o/crtend.o отсутствуют в /usr/lib. Они находяться в каталоге текущей версии gcc. Найдите их, сипользуя команду
ls `gcc-config -L`/crt*
и исправте переменные 'LIB_CRTBEGIN', 'LIB_CRTEND' в фале tendra/mk/def/def.linux.mk
Ubuntu Linux
Шел по умолчанию стоит dash, который не правильно интерпретирует шаблоны фалов (asis-[^g]*.adb). Исправте символическую ссылку /bin/sh -> /bin/dash, перенаправилв ее на /bin/bash.