Howto: Compiling FileZilla 3 under Windows

This documentation explains how to setup a build environment for FileZilla 3 and how to compile it under Windows using MinGW. It will take some time to get everything working, but you will be able to use the build environment for other programs too.

For this guide we assume c:/dev as root directory where we install everything into.

Section 1: Setting up the build environment
This includes the compiler and the required tools to build FileZilla 3 and its dependancies. For all packages we download, you will have to download the binary version, not the source version.

1.1
Download latest MinGW version and install it: http://downloads.sf.net/mingw/MinGW-5.0.3.exe
Chose c:/dev/mingw as installation directory. Select "candidate" package version and check the g++ option on the packages list.

1.2
Download latest MSYS and install it:
http://prdownloads.sourceforge.net/mingw/MSYS-1.0.11-2004.04.30-1.exe?download
Chose c:/dev/msys as installation directory. Leave all other options unchanged. During the postinstall script, please carefully answer all questions. Important: Do not skip questions with enter.

1.3
Download and install MSYS Developer Toolkit executable:
http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82721&release_id=158856
Install to c:/dev/msys as well.

1.4
Start msys. Type in the following commands:
Code:
echo "export LDFLAGS=-L/local/lib" > ~/.profile
echo "export CPPFLAGS=-I/local/include" >> ~/.profile
exit


1.5 Installing autotools

1.5.1 Download the following files to c:/dev/download:
http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
ftp://ftp.gnu.org/gnu/automake/automake-1.10.tar.gz

Start msys again and enter the following commands:
Code:
mkdir /usr/src


1.5.2 Compile and install libtool
Start msys and enter the following commands:
Code:

cd /usr/src
tar -xvzf /c/dev/download/libtool-1.5.22.tar.gz
cd libtool-1.5.22
./configure --prefix=
make -j3
make install


1.5.3 Compile and install autoconf
Code:
cd /usr/src
tar -xvzf /c/dev/download/autoconf-2.61.tar.gz
cd autoconf-2.61
./configure --prefix=
make
make install


1.5.4 Compile and install automake
Code:
cd /usr/src
tar -xvzf /c/dev/download/automake-1.10.tar.gz
cd automake-1.10
./configure --prefix=
make
make install


1.6 Compile and install libiconv
Download ftp://ftp.gnu.org/gnu/libiconv/libiconv-1.11.tar.gz to c:/dev/download
Code:
cd /usr/src
tar -xvzf /c/dev/download/libiconv-1.11.tar.gz
cd libiconv-1.11
./configure --disable-shared --enable-static
make -j3
make install


1.7 Download ftp://alpha.gnu.org/gnu/libidn/libidn-0.6.9.tar.gz to c:/dev/download.
Type the following inside msys:
Code:
cd /usr/src
tar -xvzf /c/dev/download/libidn-0.6.9.tar.gz
cd libidn-0.6.9
./configure --disable-shared --enable-static
make -j3
make install


1.8 Download ftp://ftp.gnu.org/gnu/gettext/gettext-0.16.1.tar.gz to c:/dev/download.
Download http://cvs.savannah.gnu.org/viewvc/gettext/gettext-runtime/intl/localename.c?root=gettext&r1=1.15&r2=1.16&view=patch to c:/dev/download/localename.c.patch
Type the following inside msys:
Code:
cd /usr/src
tar -xvzf /c/dev/download/gettext-0.16.1.tar.gz
cd gettext-0.16.1/gettext-runtime/intl
patch -i /c/dev/download/localename.c.patch
cd ../..
./configure --disable-shared --enable-static
make -j3
make install


1.9 Download ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.5.tar.bz2 and http://filezilla-project.org/codesquid/w32-gettext.c.patch to c:/dev/download.
Type the following inside msys:
Code:
cd /usr/src
tar -xvjf /c/dev/download/libgpg-error-1.5.tar.bz2
cd libgpg-error-1.5
patch -i /c/dev/download/w32-gettext.c.patch
./configure --disable-shared --enable-static --disable-nls
make -j3
make install


1.10 Download ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.4.tar.gz and http://filezilla-project.org/codesquid/libgcrypt.patch
c:/dev/download.
Type the following inside msys:
Code:
cd /usr/src
tar -xvzf /c/dev/download/libgcrypt-1.2.4.tar.gz
cd libgcrypt-1.2.4
patch -p0 -i /c/dev/download/libgcrypt.patch
echo "int main() { return 0; }" > tests/random.c
./configure --disable-shared --enable-static --disable-nls --disable-asm
make
make install


1.11 Download ftp://ftp.gnupg.org/gcrypt/alpha/gnutls/devel/gnutls-1.6.2.tar.bz2
c:/dev/download.
Type the following inside msys:
Code:
cd /usr/src
tar -xvjf /c/dev/download/gnutls-1.6.2.tar.bz2
cd gnutls-1.6.2
./configure --disable-shared --enable-static --disable-nls
touch lib/libgnutls-13.def
touch libextra/libgnutls-extra-13.def
touch libextra/libgnutls-openssl-13.def
make
make install


1.11 Cleanup
Code:
cd /
rm -rf /usr/src


And now you're done, you've successfully setup a build environment which can be used to compile FileZilla 3. Only dependency missing is wxWidgets, but I'll cover that later.


Section 2: Installing wxWidgets

2.1
Download latest wxWidgets version from www.wxwidgets.org

2.2
We might upgrade wxWidgets often, so we will install it into it's own prefix:
Code:
mkdir -p /opt/wxWidgets
mkdir ~/source
cd ~/source
tar -xvjf /c/dev/download/wxWidgets-2.6.3.tar.bz2
cd wxWidgets-2.6.3
mkdir compile
cd compile
../configure --prefix=/opt/wxWidgets --enable-unicode --disable-shared
make
make install


Remark: If you want to run FZ3 on Windows ME or older, you have to replace --enable-unicode with --disable-unicode. But there is no guarantee that FileZilla will work properly without unicode support.

2.3
Set environment variables:
Code:
echo 'export PATH="$PATH:/opt/wxWidgets/bin"' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/opt/wxWidgets/lib' >> ~/.profile
source ~/.profile



Section 3:
Download and install NSIS from http://nsis.sourceforge.net
Section 4: Compile FileZilla 3

4.1 Download FZ3 from CVS:
Code:
cd ~/source
cvs -d:pserver:anonymous@filezilla.cvs.sourceforge.net:/cvsroot/filezilla login
cvs -d:pserver:anonymous@filezilla.cvs.sourceforge.net:/cvsroot/filezilla co FileZilla3


4.2 Generate configure
Code:
cd FileZilla3
./autogen.sh


4.3 Compile FileZilla 3
Code:
mkdir compile
cd compile
../configure --prefix=/opt/FileZilla3
make


4.4 Generate installer

Rightclick compile/data/install.nsi in Explorer and use "Compile NSIS Script" from context menu.



1.2
Download latest MinGW Runtime and and Windows API to c:/dev/download.

1.6.1 Download the following files to c:/dev/download:
http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.59.tar.gz
ftp://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.gz
^
"ftp:" ought to be "http:".


1.6.2 Compile and install libtool
...
tar -xvjf /c/dev/download/libtool-1.5.22.tar.gz
^
"-xvjf" ought to be "-xvzf".

Code:

#ifndef _LIBIDN_LIB_IDN_INT_H
#define _LIBIDN_LIB_IDN_INT_H 1
#ifndef _GENERATED_STDINT_H
#define _GENERATED_STDINT_H "libidn 0.6.3"
/* generated using gnu compiler gcc (GCC) 4.0.3 20060212 (prerelease) (Debian 4.0.2-9) */
#define _STDINT_HAVE_STDINT_H 0
//#include <stdint.h>
typedef unsigned int      uint32_t;
#endif
#endif


copy the above code and save it as idn-int.h



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值