Компиляция FileZilla 3 под Windows

Этот документ описывает, как правильно установить окружение сборки для FileZilla 3 и как компилировать его под Windows используя MinGW. Установка может занять некоторое время, но вы сможете использовать окружение сборки и для других программ.

Для этой инструкции мы обозначим c:\dev как корневой каталог, в который мы будем все устанавливать.

Содержание

Установка окружения сборки

Сюда входит компилятор и набор инструментов необходимый для сборки FileZilla 3 и нужных зависимостей. Для всех дистрибутивов, что вы загрузили, вам понадобится загрузить двоичную версию, а не исходную.

MinGW

Загрузите файлы:

Извлеките содержимое всех tar-архивов в c:\dev\mingw. Для этого можно использовать файловый архиватор 7-Zip.

MSYS

Загрузите файлы:

Извлеките содержимое всех tar-архивов в c:\dev\msys

Запустите c:\dev\msys\postinstall\pi.bat и тщательно ответьте на все вопросы. Важно: Не пропускайте вопросы через enter.

Compilation flags

Запустите msys из c:\dev\msys\msys.bat и введите команды:

echo "export LDFLAGS=-L/local/lib" > ~/.profile
echo "export CPPFLAGS=-I/local/include" >> ~/.profile
exit

Лучше несколько раз проверить то что вы ввели. Это сэкономит вам несколько часов неприятного ожидания. Если вы допустили опечатку на этом этапе, все будет работать пока вы не начнете компилировать FileZilla.

Libidn

Загрузите ftp://ftp.gnu.org/gnu/libidn/libidn-1.22.tar.gz в c:\dev\download. Наберите в msys:

mkdir /usr/src
cd /usr/src
tar -xvzf /c/dev/download/libidn-1.22.tar.gz
cd libidn-1.22
mkdir compile
cd compile
../configure --disable-shared --enable-static --disable-nls --prefix=/c/dev/mingw
make -j3
make install


Если проверка gcc bound продолжается несколько часов, отмените её и попробуйте:

../configure --disable-shared -enable-static --disable-nls CFLAGS=-m32

Это установит 64 bit параметры для 32 bit. Вы можете применять параметр "CFLAGS=-32" и для других установок.

Libgpg-error

Загрузите ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.8.tar.bz2 в c:\dev\download. Наберите в msys:

cd /usr/src
tar -xvjf /c/dev/download/libgpg-error-1.8.tar.bz2
cd libgpg-error-1.8
./configure --disable-shared --enable-static --disable-nls --prefix=/c/dev/mingw
make -j3
make install

Libgcrypt

Загрузите ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.4.6.tar.bz2 в c:\dev\download. Наберите в msys:

cd /usr/src
tar -xvjf /c/dev/download/libgcrypt-1.4.6.tar.bz2
cd libgcrypt-1.4.6
./configure --disable-shared --enable-static --disable-nls
make
make install

GnuTLS

Загрузите ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-2.8.6.tar.bz2 и http://filezilla-project.org/codesquid/libgnutls-config в c:\dev\download. Наберите в msys:

cd /usr/src
tar -xvjf /c/dev/download/gnutls-2.8.6.tar.bz2
cd gnutls-2.8.6
./configure --disable-shared --enable-static --disable-nls --disable-cxx --disable-guile
make
make install
cp /c/dev/download/libgnutls-config /local/bin/libgnutls-config

SQLite

Загрузите http://www.sqlite.org/sqlite-autoconf-3070603.tar.gz в c:\dev\download. Наберите в msys:

cd /usr/src
tar -xvzf /c/dev/download/sqlite-autoconf-3070603.tar.gz
cd sqlite-autoconf-3070603
./configure --disable-shared --enable-static
make
make install

Очистка

cd /
rm -rf /usr/src

Если вы успешно установили окружение сборки, то можно начинать компилировать FileZilla 3. Единственная зависимость, которой не хватает, это wxWidgets. Её установка описана ниже.

Установка wxWidgets

Загрузка

Загрузите последнюю версию wxWidgets с http://www.wxwidgets.org

Установка

Возможно, wxWidgets будет часто обновляться. Поэтому установите его в отдельный префикс:

mkdir -p /opt/wxWidgets
mkdir ~/source
cd ~/source
tar -xvjf /c/dev/download/wxWidgets-2.8.12.tar.bz2
cd wxWidgets-2.8.12
mkdir compile
cd compile
../configure --prefix=/opt/wxWidgets --enable-unicode --disable-shared
make
make install

Примечание: Если вы хотите запустить FZ3 на Windows ME или более старых версиях Windows, то вы должны заменить --enable-unicode на --disable-unicode. Однако нет никакой гарантии, что FileZilla будет работать правильно без поддержки unicode.

Настройка переменной среды

Наберите в msys:

echo 'export PATH="$PATH:/opt/wxWidgets/bin"' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/opt/wxWidgets/lib' >> ~/.profile
source ~/.profile

Это завершит установку wxWidgets. Теперь нужно установить NSIS.

Установка NSIS

Загрузите и установите Unicode NSIS с http://www.scratchpaper.com

Убедитесь, что вы установили Unicode версию, а не Ansi.

Установка Subversion

Загрузите http://subversion.tigris.org/downloads/1.4.5-win32/apache-2.0/svn-win32-1.4.5.zip

Используя Explorer, извлеките архивы в c:\dev\download

Скопируйте содержимое c:\dev\download\svn-win32-1.4.5 в c:\dev\msys

Используйте следующую команду в msys чтобы проверить работоспособность:

svn --version

Компиляция FileZilla 3

Загрузка FZ3 из SVN

Наберите в msys:

cd ~/source
svn co https://svn.filezilla-project.org/svn/FileZilla3/trunkFileZilla3

Генерирование configure

Наберите в msys:

cd FileZilla3
./autogen.sh

Компиляция FileZilla 3

Наберите в msys:

mkdir compile
cd compile
../configure --prefix=/opt/FileZilla3 --with-tinyxml=builtin
make
make install

Получившийся в результате exe-файл будет иметь достаточно большой размер из-за информации об отладке. Вы можете очистить информацию об отладке через команду strip:

strip src/interface/.libs/filezilla.exe
strip src/putty/.libs/fzsftp.exe
strip src/putty/.libs/fzputtygen.exe
strip src/fzshellext/.libs/libfzshellext-0.dll

Вы можете запускать exe-файл из /opt/FileZilla3 без установки. Если вы хотите использовать этот exe-файл, вам будет необходимо копировать/перемещать его со всем содержимым папки. Если вы хотите собрать инсталлятор, используйте NSIS.

Генерирование инсталлятора

Кликните правой кнопкой мыши на compile/data/install.nsi в Explorer используя "Compile NSIS Script" из контекстного меню.

Проблемы с установкой

Если у вас возникли проблемы, убедитесь, что вы следовали всем пунктам поочередно. Для более конкретных вопросов вы можете воспользоваться форумом FileZilla forum.

Ошибка при компиляции Libidn

Если вы получаете ошибку при компиляции libidn (например когда запускаете "make -j3") в которой сказано:

make[1]: ***No rule to make target `gl/libgnu.la', needed by `libidn.la'. Stop.

, вместо запуска "make install," наберите в msys:

make clean
cd gl
make
cd ..
make -j3 
make install