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:
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
发表于 @ 2007年06月15日 00:32:00|评论(loading...)|编辑