Построение FB на Linux довольно легко, потому что, как правило,
распределения GNU / Linux обеспечивают все необходимые пакеты для
разработки, и они могут быть установлены легко, по крайней мере, для
нативной сборки. Поскольку поддержка 64 bit была добавлена в FB, нативная
сборка всегда может быть возможна, независимо от того, какая у вас система
32 bit x86 или 64-
bit x86_64. Кросс-компиляция
32-битной x86 версии FB на 64-битной x86_64 системе (или наоборот) и
построение для других архитектур, таких как ARM тоже возможно.
Как правило составление FB-linux требует следующие пакеты:
- существующая, рабочая FreeBASIC установка для самонастройки нового
компилятора
- gcc
- make
- ncurses заголовки & библиотеки (на самом деле только его libtinfo часть)
- gpm заголовки & библиотеки (general purpose mouse)
- X11 заголовки & библиотеки (включая X11, Xext, Xpm, Xrandr, Xrender)
- OpenGL заголовки & библиотеки (обычно из проекта Mesa)
- libffi заголовки & библиотеки
Нативная сборка
Получение исходного кода FB
Чтобы скомпилировать новую версию FB, сначала необходимо
получить исходный код FB.
Предполагается, что у вас есть каталог с названием fbc, содержащий последний
FB исходный код.
Получение существующей установки FB-linux для начальной загрузки
Нам понадобится рабочая установка FB-linux для загрузки нового компилятора
FB. Если у вас нет установленной нативной версии FB, скачайте последний
релиз FreeBASIC-X.XX.X-linux для вашей системы (32bit x86, 64bit x86_64, ARM,
и т.д.) с
FB
сайта загрузки, затем извлеките и установите его:
$ tar xf FreeBASIC-X.XX.X-linux.tar.gz
$ cd FreeBASIC-X.XX.X-linux
$ sudo ./install.sh -i
Вполне возможно, что вы можете получить рабочую FB установку из других
источников, кроме проекта FBC. Например, в некоторых дистрибутивах уже может
быть пакет
freebasic .
Установка пакетов разработки
Ниже перечислены пакеты, которые вы должны установить для некоторых
распространенных дистрибутивов GNU / Linux. Точные названия пакетов могут
быть разными в зависимости от того, какой дистрибутив (или какая версия его)
вы используете.
Системы на основе Debian (включая Ubuntu, Mint и т.д.):
- gcc
- make
- libncurses5-dev
- libgpm-dev
- libx11-dev
- libxext-dev
- libxpm-dev
- libxrandr-dev
- libxrender-dev
- libgl1-mesa-dev
- libffi-dev
OpenSUSE:
- gcc
- make
- ncurses-devel
- gpm-devel
- libX11-devel
- libXext-devel
- libXpm-devel
- libXrandr-devel
- libXrender-devel
- Mesa-libGL-devel
- libffi48-devel
Fedora:
- gcc
- make
- ncurses-devel
- gpm-devel
- libX11-devel
- libXext-devel
- libXpm-devel
- libXrandr-devel
- libXrender-devel
- mesa-libGL-devel
- libffi-devel
Компиляция FB
Компиляция FB изначально проста, запустите "make" в каталоге FBC исходного
кода. Это построит нативную установку FB , соответствующую архитектуре
системы, при условии, что существующая FBC установка в системе производит
собственные программы.
$ cd fbc
$ make
Это должно будет создать
bin/fbc компилятор и библиотеки
lib\freebasic\linux-[architecture]\.
После этого вы можете установить новую сборку FBC в
/usr/local
запустив "make install", и заменить старую установку FB:
$ sudo make install
Компиляция 32бит FB на 64бит системе с существующим 32бит FB
Кроме нативной сборки, вы можете также сделать не нативную сборку, такую как
сборка 32бит версии FB на 64-битной системе, с использованием существующей
32бит FB сборки. Это было очень распространено, перед тем, как поддержка 64
бита была добавлена в FB. Это требует немного иной порядок в отличии от нативной сборки.
- Получить исходный код FB.
- Установите 32бит версию FB для начальной загрузки (вместо нативной версии
64бит).
- Установите пакеты разработки 32бит (не только нативные 64bit).
64бит Debian/Ubuntu пример:
- gcc-multilib
- make
- lib32ncurses5-dev
- libx11-dev:i386
- libxext-dev:i386
- libxpm-dev:i386
- libxrandr-dev:i386
- libxrender-dev:i386
- libgl1-mesa-dev
- libgpm-dev
- lib32ffi-dev
- gcc-32bit
- make
- ncurses-devel-32bit
- gpm-devel
- libX11-devel-32bit
- libXext-devel-32bit
- libXpm-devel-32bit
- libXrandr-devel-32bit
- libXrender-devel-32bit
- Mesa-libGL-devel-32bit
- libffi48-devel-32bit
- Добавьте следующий файл config.mk в каталоге исходника
FBC (рядом с FB makefile):
CC = gcc -m32
TARGET_ARCH = x86
Это файл скажет о том, что FB сборка для 32бит вместо 64бит умолчанию.
Установите CC:
gcc -m32 вместо
gcc , что
вызовет компиляцию всего C кода для 32 бит, а не для 64 бит
по умолчанию.
Предполагая, что существующая сборка
fbc
32 бита, она уже будет по умолчанию компилироваться в 32
бит, так что установка
fbc: fbc -arch 32
вместо
fbc не требуется (старше 32бит FBC версии
раньше не было,
-arch 32 вариант в любом
случае).
Настройку TARGET_ARCH для x86 необходимо переопределить в FB makefile
: uname -m
(потому что возвращает x86_64 на 64бит). Это позволит
сделать сборку FB с выбором нужных модулей x86 rtlib /
gfxlib2 и использовать правильные каталоги для x86.
- Запустите "make" и пусть FB
компилируется:
- При желании, установите недавно построенную 32bit FB
сборку в /usr/local: