Difference between revisions of "Cross Compiling FileZilla 3 for Windows under Ubuntu or Debian GNU/Linux"

From FileZilla Wiki
Jump to navigationJump to search
Line 13: Line 13:
  
 
As root, execute:
 
As root, execute:
  apt-get install bzip2 mingw-w64
+
  apt-get install bzip2 ca-certificates gcc lzip m4 mingw-w64 pkg-config
  
 
Back as normal user, execute:
 
Back as normal user, execute:
 
  export PATH="$HOME/prefix-win32/bin:$PATH"
 
  export PATH="$HOME/prefix-win32/bin:$PATH"
 +
export CPPFLAGS="-I$HOME/prefix-win32/include"
 +
export LDFLAGS="-L$HOME/prefix-win32/lib"
 +
export PKG_CONFIG_PATH="-L$HOME/prefix-win32/lib/pkgconfig"
  
 
== GMP ==
 
== GMP ==
Line 22: Line 25:
 
  cd ~/src
 
  cd ~/src
 
  wget https://gmplib.org/download/gmp/gmp-6.0.0a.tar.lz
 
  wget https://gmplib.org/download/gmp/gmp-6.0.0a.tar.lz
  TODO
+
  tar xvf gmp-6.0.0a.tar.lz
 +
cd gmp-6.0.0a
 +
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
 +
make
 +
make install
  
 
== NETTLE ==
 
== NETTLE ==
Line 28: Line 35:
 
  cd ~/src
 
  cd ~/src
 
  wget https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
 
  wget https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
  tar xvzf nettle-2.7.1.tar.gz
+
  tar xvf nettle-2.7.1.tar.gz
 
  cd nettle-2.7.1
 
  cd nettle-2.7.1
 
  ./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
 
  ./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
Line 38: Line 45:
 
  cd ~/src
 
  cd ~/src
 
  wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.17.tar.lz
 
  wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.17.tar.lz
  tar xvJf gnutls-3.2.17.tar.lz
+
  tar xvf gnutls-3.2.17.tar.lz
 
  cd gnutls-3.2.17
 
  cd gnutls-3.2.17
 
  ./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
 
  ./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared

Revision as of 18:52, 8 September 2014

This documentation explains how to setup a build environment for FileZilla 3 for Windows and how to compile it under Ubuntu or Debian using Mingw-w64. It will take less time and is more simple than Compiling FileZilla 3 under Windows.

OS version

Any recent Linux should do the trick. For the sake of simplicity, this guide focuses on Debian(-based) distributions.

Known-good Debian(-based) distributions:

Setting up the build environment

As root, execute:

apt-get install bzip2 ca-certificates gcc lzip m4 mingw-w64 pkg-config

Back as normal user, execute:

export PATH="$HOME/prefix-win32/bin:$PATH"
export CPPFLAGS="-I$HOME/prefix-win32/include"
export LDFLAGS="-L$HOME/prefix-win32/lib"
export PKG_CONFIG_PATH="-L$HOME/prefix-win32/lib/pkgconfig"

GMP

cd ~/src
wget https://gmplib.org/download/gmp/gmp-6.0.0a.tar.lz
tar xvf gmp-6.0.0a.tar.lz
cd gmp-6.0.0a
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
make
make install 

NETTLE

cd ~/src
wget https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
tar xvf nettle-2.7.1.tar.gz
cd nettle-2.7.1
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
make
make install

GNUTLS

cd ~/src
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.17.tar.lz
tar xvf gnutls-3.2.17.tar.lz
cd gnutls-3.2.17
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
make
make install

Compile SQLite

cd ~/src
wget http://sqlite.org/2014/sqlite-autoconf-3080600.tar.gz
tar xvzf sqlite-autoconf-3080600.tar.gz
cd sqlite-autoconf-3080600
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
make
make install

Compile wxWidgets

cd ~/src
wget http://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2
tar xvjf wxWidgets-3.0.1.tar.bz2
cd wxWidgets-3.0.1
./configure --host=i686-w64-mingw32 --prefix="$HOME/prefix-win32" --disable-shared
make
make install

Compile FileZilla

cd ~/src
wget http://download.filezilla-project.org/client/FileZilla_3.9.0.5_src.tar.bz2
tar xvjf FileZilla_3.9.0.5_src.tar.bz2
cd FileZilla_3.9.0.5_src.tar.bz2
./configure --host=i686-w64-mingw32 --with-tinyxml=builtin
make