Компиляция на MinGW

Contents

Введение

Данная статья содержит указания для компиляции OpenTTD для Win32 при помощи MinGW.

Список пакетов

Данное руководство было протестировано со следующими версиями требуемых пакетов:

Установка MinGW и MSYS

  1. Загрузите и запустите mingw-get-inst (ссылка для загрузки выше).
  2. Выберете "Use pre-packaged repository catalogues". (Использовать упакованный репозитарий)
  3. Просмотрите и примите условия лицензии.
  4. Обратите внимание, что MinGW должен быть установлен в каталог, путь к которому не содержит пробелов. В данном руководстве протестирован метод установки в C:\MinGW.
  5. Выберете C++ Compiler и MSYS Basic System как дополнительные компоненты.
  6. Дождитесь пока каждый пакет будет загружен и установлен.

Настройка MSYS

Перейдите в каталог msys (C:\MinGW\msys\1.0), откройте etc\fstab с помощью текстового редактора (например Блокнота) и добавьте следующую строку:

C:\MinGW\   /usr/local

В ОС Windows 7 и Vista, если включен UAC , чтобы позволить MSYS полноценно работать, вам понадобятся дополнительные шаги. Перейдите в каталог msys (C:\MinGW\msys\1.0), откройте msys.bat с помощью текстового редактора (например Блокнота) и добавьте следующую строку после @echo off:

cd "C:\MinGW\msys\1.0"

И если диск C: (или тот на котором у вас установлен MSYS) не является диском, на котором установлена ваша ​​операционная система, то добавить еще одну строку

C:

After saving the file, right click on msys.bat and choose "Run as Administrator". After that programs requiring admin rights, such as install and patch will work. (You will need right-click and run as administrator every time you run msys). После сохранения файла, кликните правой кнопкой мыши на msys.bat и выберите "Запуск от имени администратора". После этого программы, требующие права администратора, такие как установщик и патчер будут работать. (Вам нужно щелкнуть правой кнопкой мыши и запустить от имени администратора при каждом запуске MSYS).

Проверка установленного MinGW/MSYS

Компиляция и установка необходимых пакетов

Для дополнительно информации о библиотеках, посмотрите часть 7.1) в Readme-файле OpenTTD. Для того чтобы скомпилировать и установить данные пакеты, для начала, вам необходимо ввести следующие команды:

mingw-get install msys-wget
mingw-get install msys-unzip
mingw-get install msys-patch

В качестве альтернативы, чтобы появились wget и tar/unzip для дальнейшего использования, вы можете загрузить все библиотеки и распаковать их в каталог в который установлен MSYS (по умолчанию, C:\MinGW\msys\1.0\home\имя_пользователя.

Если вы получите следующую ошибку: configure: error: cannot run C compiled programs. , одной из причин может быть ваша антивирусная программа, которая без уведомления удаляет двоичные файлы a.exe. Попробуйте временно отключить антивирусную программу и скомпилировать снова.

Установка Subversion

В MSYS:

mkdir -p /usr/local/bin
wget http://sourceforge.net/projects/win32svn/files/1.6.15/svn-win32-1.6.15.zip/download
unzip svn-win32-1.6.15.zip
cd svn-win32-1.6.15
mv bin/* /usr/local/bin/
cd ..

В качестве альтернативы, вы можете загрузить и распаковать в C:\MinGW\msys\1.0\usr\local.

Компиляция zlib

В MSYS:

wget http://zlib.net/zlib-1.2.5.tar.gz
tar xvfz zlib-1.2.5.tar.gz
cd zlib-1.2.5
make -f win32/Makefile.gcc BINARY_PATH=/usr/local/bin INCLUDE_PATH=/usr/local/include LIBRARY_PATH=/usr/local/lib install
cd ..

Компиляция libpng

В MSYS:

wget http://sourceforge.net/projects/libpng/files/libpng15/1.5.4/libpng-1.5.4.tar.gz/download
tar xvfz libpng-1.5.4.tar.gz
cd libpng-1.5.4
mv INSTALL INSTALL.txt
./configure
make install
cd ..

Компиляция liblzo2

В MSYS:

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.05.tar.gz
tar xvfz lzo-2.05.tar.gz
cd lzo-2.05
./configure --enable-static
make install
cd ..

Компиляция libfreetype

В MSYS:

wget http://sourceforge.net/projects/freetype/files/freetype2/2.4.4/freetype-2.4.4.tar.gz/download
tar xvfz freetype-2.4.4.tar.gz
cd freetype-2.4.4
./configure --enable-static
make install
cd ..

Компиляция xz

Liblzma (который является частью xz) требуется для компиляции OpenTTD начиная с версии r21044. Также требуется pkg-config. В MSYS:

wget http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip
unzip gettext-runtime_0.18.1.1-2_win32.zip -d /mingw
wget http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.26/glib_2.26.0-2_win32.zip
unzip glib_2.26.0-2_win32.zip -d /mingw
wget http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
unzip pkg-config_0.23-3_win32.zip -d /mingw
wget http://tukaani.org/xz/xz-5.0.3.tar.gz
tar xvfz xz-5.0.3.tar.gz
cd xz-5.0.3
./configure --enable-static --disable-threads
make install
cd ..

Компиляция libicu

libicu является дополнительной библиотекой, используемой для письма справа налево (например, на арабском и персидском языках), а также для естественной сортировки списков. Компиляция данной библиотеки может занять много времени, так что вы можете спокойно пропустить этот шаг, если вам не требуется libicu.

/File/en/Notice.png
Заметка
Применение второго патча - необязательный шаг. Это уменьшит размер скомпилированного OpenTTD, ценой потери сортировки данных для большинства языков.
/File/en/Content.png
Внимание
Компиляция с libicu значительно увеличит размер конечного исполняемого файла OpenTTD.

размер openttd.exe с libicu:приблиз. 25 Мб
размер openttd.exe с libicu (сокращение размера с патчем "reduced icudata size"):приблиз. 10 Мб
размер openttd.exe без libicu:приблиз. 8 Мб

В MSYS:

wget http://download.icu-project.org/files/icu4c/4.6/icu4c-4_6-src.zip
unzip icu4c-4_6-src.zip
cd icu
wget http://devs.openttd.org/~terkhen/libicu/libicu_4_6_mingw32.diff
patch -p1 -i libicu_4_6_mingw32.diff
wget http://devs.openttd.org/~terkhen/libicu/libicu_reduce_icudata_size.diff
patch -p1 -i libicu_reduce_icudata_size.diff
cd source
./configure --enable-static --disable-shared --disable-strict --disable-threads
make install
cd ../..

Получение исходного кода

Посмотрите Часто задаваемые вопросы разработчика о различных способах получения исходных текстов. Если вы загружаете без использования MSYS (например, загружаете исходные тесты с вебсайта) не забудьте поместить в ваш домашний каталог (по умолчанию C:\MinGW\msys\1.0\home\<имя_пользователя>).

Компиляция OpenTTD

Если у вас не компилируется, не паникуйте. Иногда это может быть связано с ошибками в коде, в этом случае, они должны представляться на bugs.openttd.org, таким образом они могут быть исправлены.

  1. Запустите MSYS.
  2. Введите:
    cd ~/<путь_к_исходникам>
    ./configure
    make
    (заметим что ~ означает ваш домашний каталог)
  3. Компиляция будет завершена, тогда когда будет создан файл openttd.exe. Он будет скопирован в подкаталог ./bin.
  4. Для проверки вашей компиляции, вы может запустить (из того же каталога в котором скомпилирован ваш OpenTTD):
    ./bin/openttd
    Не забудьте установить основной пакет графики до запуска игры (самый простой способ OpenGFX)
  5. Если вы хотите создать установочный пакет, вы можете использовать:
    make bundle
    После того как команда выполнится, вы может найти готовый дистрибутив OpenTTD в каталоге ~/<путь_к_исходникам>/bundle.