1). Необходимы исходники fpc, желательно 2.2.3 (он уже довольно хорошо допилен). Взять можно:
svn checkout http://svn.freepascal.org/svn/fpc/branches/fixes_2_2 fpc-2.2.32). Необходимо иметь компилятор fpc ppc386. Если стоит ppcx64, то придется, как минимум, взять один файл - ppc386. 64-х разрядный не компилирует в ARM.
3). Проверяем компиляцию под родную платформу. Заходим в каталог fpc-2.2.3 и делаем make clean all PP=/путь к компилятору/ppc386. Затем sudo make install PP=/путь к компилятору. Иногда sudo не дает результата, тогда задите командо su под рута и выполните make install PP=/путь к компилятору/ppc386
Если все прошло удачно, то можно переходить к кросс компиляции
4). Обязательно устанавливаем binutils. Я не знаю есть ли готовая сборка в Убунте, но думаю, что должна быть, ведь туда пихают все, что нужно и не нужно. В SuSE, нужный нам пакет называется cross-arm-binutils, подобное нужно искать и в Убунту. Если нет, то берем исходники binutils и компилируем для arm-linux.
5). Открываем консоль
6). Указываем пути к папке Компилятора fpc и к binutils: export PATH=$PATH:/путь к исходникам fpc-2.2.3/compiler:/opt/cross/bin
Binutils обычно ставится в директорию /opt/cross/, но проверьте у себя, точно ли оно там находится.
7). Переходим в каталог исходников fpc - fpc-2.2.3
8 ). make clean
9). На всякий случай выполняем: fpcmake -Tall -r , это для конфигурирования make-файло, какие платформы поддерживать. Выбираем все, чтобы не морочиться.
10). make all PP=/usr/local/lib/fpc/2.2.3/ppc386 CPU_TARGET=arm . После того, как мы раньше, откомпилировали и установили fpc, - он обычно находится в: /usr/local/lib/fpc/2.2.3/ppc386, Его и указываем, система не всегда сама разбирается.
11). Если пошло без ошибок - инсталируем под рутом:
> su
> export PATH=/usr/local/lib/fpc/2.2.3/bin:/opt/cross/bin:$PATH - пути проверьте и приведите к своим
> make crossinstall PP=/usr/local/lib/fpc/2.2.3/ppc386 CPU_TARGET=arm - путь к компилятору проверьте
При помощи sudo, у меня на SUSE не инсталируется, если у Вас получится, то воспользуйдесь sudo вместо входа под root`ом
Вроде ничего не пропустил.
Кросс компилятор будет находиться в корневом каталоге fpc:
/usr/local/lib/fpc/2.2.3/ppcrossarm
а модули в:
/usr/local/lib/fpc/2.2.3/units/arm-linux