Компиляция Haiku в Windows с помощью Cygwin[]
На данный момент стабильная сборка Haiku производится в самой Haiku или Linux, Free BSD, MacOS. Но мы попробуем поэкспериментировать и собрать Haiku в Windows! Для этого будем использовать среду Cygwin, которая позволяет компилировать и запускать UNIX / Linux программы в Windows. Описание Cygwin в википедии.
Весь процесс установки, настройки и компиляции по этапам:
1.Скачиваем 32 битную версию Cygwin с официального сайта.
2.Запускаем установку Cygwin (запускаем установочный файл setup-x86.exe).
3.Следуем стандартным настройкам установщика, до момента выбора пакетов.
4.На этапе выбора пакетов, следует ОБЯЗАТЕЛЬНО найти и отметить для установки следующие пакеты:
- git
- gcc-g++
- make
- bison
- flex
- texinfo
- autoconf
- automake
- gawk
- nasm
- wget
- zip
- unzip
- curl
- curl-devel
- zlib
- zlib-devel
- genisoimage
- libtool
5.Установщик Cygwin скачает и установит выбранные пакеты автоматически.
6.При успешной установке, на рабочем столе должен появиться ярлык для запуска Cygwin.
7.Запускаем Cygwin и видим командную оболочку, как на скриншоте (для корректного выхода из неё, нужно набрать команду: exit):
8.Теперь ОБЯЗАТЕЛЬНО нужно включить поддержку режима case-sensitivity для имён файлов в системе Windows (по умолчанию отключено). Для этого откройте редактор реестра windows (команда regedit) и найдите параметр obcaseinsensitive по этому пути:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\
Установите значение параметра obcaseinsensitive в 0
Перезагрузите систему Windows для применения изменений.
9.Теперь запустите Cygwin и убедитесь, что команды, как на скриншоте, не вызывают ошибки и реально создают две папки с одинаковыми именами, но в разном регистре в домашней директории пользователя Cygwin:
c:\cygwin\home\user\
10. Теперь клонируем исходный код Haiku. Для это в командной оболочке Cygwin последовательно вводим команды:
git clone https://git.haiku-os.org/buildtools
git clone https://git.haiku-os.org/haiku
11. После успешного клонирования исходного кода Haiku, переходим к стадии компиляции кроссплатформенных инструментов для сборки Haiku. Для этого вводим следующие команды:
cd buildtools/jam
make
./jam0 install
cd ../..
jam -v
12. После успешной компиляции и установки специального форка системы сборки Jam для Haiku, переходим к компиляции других инструментов. Вводим команды (команда выделенная жирным курсивом вводится цельной, без разбивки на строки):
cd haiku
mkdir generated-x86
cd generated-x86
../configure -j2 --distro-compatibility official --use-gcc-pipe --build-cross-tools x86 ../../buildtools/
Описание ключей:
- j2 - цифра указывает на количество ядер процессора задействованных в компиляции.
- distro-compatibility official - указывает собирать официальный дистрибутив Haiku.
- use-gcc-pipe - позволяет задействовать ОЗУ для более быстрой компиляции.
13. После удачной компиляции, мы должны увидеть сообщение: binutils and gcc for cross compilation have been built successfully!
Это означает, что конфигурация и компиляция необходимых инструментов закончилась успешно и можно двигаться дальше.
14. Теперь нужно добавить Cygwin в список поддерживаемых платформ. Без этого сборка Haiku не начинается с соответствующим сообщением:
/home/user/haiku/src/build/libsolv/Jamfile: Please add a case for your platform (cygwin)!
Редактируем файл по пути: haiku\src\build\libsolv\Jamfile
Находим раздел: switch $(HOST_PLATFORM)
И добавляем в него строки:
case cygwin :
DEFINES += HAVE_FUNOPEN ;
Сохраняем файл.
15.Потом редактируем файл по пути: haiku\build\jam\MainBuildRules
Находим строку: CygwinExtensionFix $(target) ;
Ставим перед ней символ комментария, чтобы получилось так:
#CygwinExtensionFix $(target) ;
Сохраняем файл.
16.После этого начинаем сборку дистрибутива Haiku!
Вводим команду (команда вводится цельной, без разбивки на строки):
jam -q -j2 -sHAIKU_IMAGE_SIZE=900 @nightly-anyboot
Описание ключей:
- j2 - цифра указывает на количество ядер процессора задействованных в компиляции.
- sHAIKU_IMAGE_SIZE=900 - цифра указывает желаемый размер образа.
- @nightly-anyboot - означает, что это мультизагрузочная ночная сборка.
По идее, после всех этих манипуляций, мы должны увидеть радостное сообщение о том, что всё собралось и наш желанный дистрибутив готов, но из-за небольшой недоработки с правильной записью атрибутов файлов, этого не происходит, и пока сборка под Cygwin ломается почти под финиш.
На недавнем съезде программистов Haiku, эта проблема была поднята и поручена для решения одному из ведущих специалистов по коду Haiku, и он обещал всё наладить и выложить патч в основную ветку разработки, но пока этого не произошло.
Ждём :)