|
|
Line 1: |
Line 1: |
− | This documentation explains how to setup a build environment for [[FileZilla 3]] '''for Windows''' and how to compile it under [http://ubuntu.com Ubuntu] or [http://debian.org Debian] using [http://www.mingw.org/ MinGW]. It will take less time and simple than [[Compiling FileZilla 3 under Windows]].
| + | I found about your site on bing and checked a few of your early posts. I hope you will ctiunnoe the very good work. I just added your RSS feed to Feedburner. I'm seeing forward to reading more from you later on! |
− | | |
− | == OS version ==
| |
− | * [http://ubuntu.com Ubuntu] 10.04 ('''recommended''')
| |
− | * [http://debian.org Debian] 5.0.3
| |
− | * [http://colinux.org coLinux] with [http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Debian/Debian%205.0%20Lenny/Debian-5.0r2-lenny.7z/download Debian-5.0r2-lenny]
| |
− | | |
− | == Setting up the build environment ==
| |
− | | |
− | === Ubuntu ===
| |
− | | |
− | Required packages
| |
− | sudo apt-get install -y mingw32 make g++ libtool bzip2 automake gettext wx-common
| |
− | | |
− | === Debian ===
| |
− | | |
− | Do works as root
| |
− | su -
| |
− | | |
− | Required packages
| |
− | apt-get install -y mingw32 make g++ libtool bzip2 automake gettext wx-common
| |
− | | |
− | == Patch mingw32-runtime (only Debian) ==
| |
− | | |
− | If you are using Ubuntu, go to the next [[#Make libraries]] section. In Ubuntu, the patch is applied.
| |
− | | |
− | Because the version of mingw32-runtime in Debian 5 is [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452977 broken] - Thanks [[CodeSquid]], patch mingw32-runtime package.
| |
− | | |
− | === Get source package ===
| |
− | cd /tmp
| |
− | apt-get install dpkg-dev debhelper
| |
− | apt-get source mingw32-runtime
| |
− | cd mingw32-runtime-3.13/
| |
− | debian/rules unpack-stamp
| |
− | | |
− | === Patch snprintf bug ===
| |
− | pushd build_dir/src/mingw-runtime-3.13-20070825-1/mingwex/gdtoa/
| |
− | diff -u mingw_snprintf.c.org mingw_snprintf.c
| |
− | --- mingw_snprintf.c.org 2009-09-21 02:41:31.000000000 +0000
| |
− | +++ mingw_snprintf.c 2009-09-21 02:41:54.000000000 +0000
| |
− | @@ -465,7 +465,7 @@
| |
− | len = LEN_LL;
| |
− | }
| |
− | else
| |
− | - len = LEN_LL;
| |
− | + len = LEN_L;
| |
− | goto fmtloop;
| |
− | case 'L':
| |
− | flag_ld++;
| |
− | @@ -617,6 +617,7 @@
| |
− | break;
| |
− | case LEN_S:
| |
− | *(short*)ip = c;
| |
− | + break;
| |
− | case LEN_LL:
| |
− | *(long long*) ip = c;
| |
− | break;
| |
− | popd
| |
− | | |
− | === Build & Install ===
| |
− | debian/rules build
| |
− | debian/rules install
| |
− | | |
− | === Copy new library ===
| |
− | mv $/usr/i586-mingw32msvc/lib/libmingwex.a $/usr/i586-mingw32msvc/lib/libmingwex.a.old
| |
− | cp debian/mingw32-runtime/usr/i586-mingw32msvc/lib/libmingwex.a $/usr/i586-mingw32msvc/lib/
| |
− | | |
− | == Make libraries ==
| |
− | Do works as normal user in Debian.
| |
− | exit
| |
− | | |
− | === Make working & install directory ===
| |
− | Check available space of storage.
| |
− | mkdir ~/mingw32
| |
− | mkdir /tmp/fz3
| |
− | cd /tmp/fz3
| |
− | | |
− | === Setting up environment variables ===
| |
− | export CFGPRE=~/mingw32
| |
− | export CFGOPT="--prefix=$CFGPRE --host=i586-mingw32msvc --disable-shared --enable-static"
| |
− | | |
− | === iconv ===
| |
− | wget ftp://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
| |
− | tar zxvf libiconv-1.14.tar.gz
| |
− | cd libiconv-1.14
| |
− | ./configure $CFGOPT
| |
− | make install clean
| |
− | cd ..
| |
− | | |
− | === libidn ===
| |
− | wget ftp://alpha.gnu.org/gnu/libidn/libidn2-0.8.tar.gz
| |
− | tar zxvf libidn2-0.8.tar.gz
| |
− | cd libidn2-0.8
| |
− | ./configure $CFGOPT
| |
− | make install clean
| |
− | cd ..
| |
− | | |
− | === libgpg-error ===
| |
− | wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2
| |
− | tar jxvf libgpg-error-1.10.tar.bz2
| |
− | cd libgpg-error-1.10
| |
− | ./configure $CFGOPT --disable-nls
| |
− | make install clean
| |
− | cd ..
| |
− | | |
− | === libgcrypt ===
| |
− | wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2
| |
− | tar jxvf libgcrypt-1.5.0.tar.bz2
| |
− | cd libgcrypt-1.5.0
| |
− | ./configure $CFGOPT --disable-nls --disable-asm --with-gpg-error-prefix=$CFGPRE
| |
− | make install clean
| |
− | cd ..
| |
− | | |
− | === GnuTLS ===
| |
− | wget ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-3.0.19.tar.xz
| |
− | tar Jxvf gnutls-3.0.19.tar.xz
| |
− | cd gnutls-3.0.19
| |
− | ./configure $CFGOPT --disable-nls --disable-cxx --disable-guile --with-libgcrypt-prefix=$CFGPRE
| |
− | make install clean
| |
− | cd ..
| |
− | | |
− | === wxWidgets ===
| |
− | wget http://downloads.sourceforge.net/wxwindows/wxWidgets-2.8.12.tar.bz2
| |
− | tar jxvf wxWidgets-2.8.12.tar.bz2
| |
− | cd wxWidgets-2.8.12
| |
− | mkdir compile
| |
− | cd compile
| |
− | ../configure $CFGOPT --enable-unicode
| |
− | make install clean
| |
− | cd ../..
| |
− | | |
− | == Compiling FileZilla 3 ==
| |
− | wget http://downloads.sourceforge.net/filezilla/FileZilla_3.5.3_src.tar.bz2
| |
− | tar jxvf FileZilla_3.5.3_src.tar.bz2
| |
− |
| |
− | cd filezilla-3.5.3
| |
− | ./autogen.sh
| |
− | | |
− | mkdir compile
| |
− | cd compile
| |
− | | |
− | autogen.sh of FileZilla 3 use old libgnutls-config. GnuTLS does not use libgnutls-config anymore.
| |
− | | |
− | Dowload http://filezilla-project.org/codesquid/libgnutls-config to $CFGPRE/bin. Edit prefix value.
| |
− | | |
− | wget -O $CFGPRE/bin/libgnutls-config http://filezilla-project.org/codesquid/libgnutls-config
| |
− |
| |
− | echo $CFGPRE
| |
− | /home/fz/mingw32 # remember the path
| |
− |
| |
− | vi $CFGPRE/bin/libgnutls-config
| |
− | prefix=/home/fz/mingw32 # edit this line.
| |
− |
| |
− | chmod +x $CFGPRE/bin/libgnutls-config
| |
− | | |
− | Configure and builld.
| |
− | | |
− | CFLAGS="-I$CFGPRE/include" CXXFLAGS="-I$CFGPRE/include" LDFLAGS="-L$CFGPRE/lib" ../configure $CFGOPT --with-wx-prefix=$CFGPRE --with-libgnutls-prefix=$CFGPRE
| |
− |
| |
− | make
| |
− | strip src/interface/filezilla.exe
| |