F.4.2. Компиляция компилятора

На верх  Назад  Вперёд

Компиляцию компилятора можно выполнить одним объявлением. Это всегда лучше, чем сначала удалять все модули из каталога компилятора и выглядит примерно так:

rm *.ppu *.o

на LINUX, а для DOS:

del *.ppu
del *.o

После этого компилятор можно откомпилировать с помощью следующей командной стоки:

ppc386 -Tlinux -Fu../rtl/units/i386-linux -di386 -dGDB pp.pas

То есть, минимальным набором опций являются:

1.Целевая ОС. Может быть пропущена, если компиляция выполняется для той же целевой платформы, какая используется компилятором.

2.Путь к RTL. Может быть пропущен, если в системе имеется правильная конфигурации fpc.cfg. Если компилятор должен быть скомпилирован с RTL, которая была откомпилирована первой, это должен быть ../rtl/OS (замените OS на соответствующую директорию операционной системы в RTL).

3.Определение процессора, для которого компилируется компилятор. Обязательно.

4.-dGDB. Обязательно.

5.-Sg необходима, некоторые части компилятора используют операторы goto (если конкретно, то сканер).

6.Каталог с дополнительными модулями и включаемыми (include) файлами для компиляции.

7.Каталог с системными определениями.

Так что абсолютно минимальная командная строка выглядит так:

ppc386 -di386 -dGDB -Sg pp.pas

Некоторые другие опции командной строки могут быть использованы, но это минимум. Список распознаваемых опций можно найти в таблице F.1.

Таблица F.1. Возможные определения при компиляции FPC.

Определение

Что делает

GDB

Поддерживает отладчик GNU Debugger (требуется переключатель).

I386

Генерирует компилятор для семейства процессоров Intel i386+.

M68K

Генерирует компилятор для семейства процессоров M680x0.

X86_64

Генерирует компилятор для семейства процессоров AMD64.

POWERPC

Генерирует компилятор для семейства процессоров PowerPC.

POWERPC64

Генерирует компилятор для семейства 64-разрядных процессоров PowerPC.

ARM

Генерирует компилятор для семейства процессоров Intel ARM.

SPARC

Генерирует компилятор для семейства процессоров SPARC.

EXTDEBUG

Выполняет некоторый дополнительный код отладки.

MEMDEBUG

Отображает некоторую полезную информацию о памяти.

SUPPORT_MMX

Только i386: Включает переключатель компилятора MMX, который позволяет компилятору генерировать инструкции MMX.

EXTERN_MSG

Не компилируйте msgfiles в компилятор, всегда используйте внешние messagefiles.

NOOPT

Не включать оптимизацию в компиляторе.

CMEM

Использовать менеджер памяти С.

Этот список может быть изменён, исходный файл pp.pas всегда содержит последнюю актуальную версию списка.