Difference between revisions of "Compiling FileZilla 3 under macOS"
From FileZilla Wiki
Jump to navigationJump to searchLine 1: | Line 1: | ||
− | This documentation explains how to setup a build environment for [[FileZilla 3]] and how to compile it under Mac OS X using [https://developer.apple.com/TOOLS/xcode/ Xcode]. These directions have been tested under | + | This documentation explains how to setup a build environment for [[FileZilla 3]] and how to compile it under Mac OS X using [https://developer.apple.com/TOOLS/xcode/ Xcode]. These directions have been tested under OS X 10.11 on an Intel Mac. Resulting binaries are for OS X 10.7 or later. |
− | |||
− | |||
__TOC__ | __TOC__ | ||
− | + | == Xcode == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | You need to download and install the latest version of Xcode from https://developer.apple.com/xcode/download/ | |
− | + | == Build environment == | |
− | + | Open a Terminal and type the following: | |
− | + | mkdir -p "$HOME/prefix" | |
+ | mkdir -p "$HOME/src" | ||
+ | export CC="clang -mmacosx-version-min=10.7" | ||
+ | export CXX="clang++ -std=c++14 -stdlib=libc++ -mmacosx-version-min=10.7" | ||
+ | export AS="as -mmacosx-version-min=10.7" | ||
+ | export LD="ld -macosx_version_min 10.7" | ||
+ | export PATH="$PATH:$HOME/prefix/bin" | ||
+ | export CPPFLAGS="-I$HOME/prefix/include" | ||
+ | export LDFLAGS="-L$HOME/prefix/lib" | ||
+ | export LD_LIBRARY_PATH="$HOME/prefix/lib" | ||
+ | export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig" | ||
− | + | If you ever close the terminal and reopen it, repeat the above steps before you continue. | |
− | + | == pkg-config == | |
− | cd / | + | cd ~/src |
− | + | # Note that we cannot use the newer pkg-config 0.29, it doesn't link on OS X. | |
+ | curl -OL http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz | ||
+ | tar xvf pkg-config-0.28.tar.gz | ||
cd pkg-config-0.28 | cd pkg-config-0.28 | ||
− | ./configure --prefix | + | ./configure --prefix="$HOME/prefix" --disable-shared --with-internal-glib |
− | + | make | |
− | + | make install | |
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | == GMP == |
− | + | cd ~/src | |
+ | curl -OL https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz | ||
+ | tar xvf gmp-6.1.0.tar.xz | ||
+ | cd gmp-6.1.0 | ||
+ | ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat | ||
+ | make | ||
+ | make install | ||
− | + | == Nettle == | |
− | + | cd ~/src | |
− | + | curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.1.tar.gz | |
− | + | tar xvf nettle-3.1.tar.gz | |
− | + | cd nettle-3.1 | |
− | + | ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat | |
− | + | make | |
− | + | make install | |
− | |||
− | |||
− | cd | ||
− | ./configure --prefix=$HOME/ | ||
− | |||
− | == | + | == GnuTLS == |
− | + | cd ~/src | |
+ | curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-3.4.8.tar.xz | ||
+ | tar xvf gnutls-3.4.8.tar.xz | ||
+ | cd gnutls-3.4.8 | ||
+ | ./configure --prefix="$HOME/prefix" --disable-shared --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts | ||
+ | make | ||
+ | make install | ||
− | + | == Compile SQLite == | |
− | + | cd ~/src | |
− | + | curl -OL http://sqlite.org/2016/sqlite-autoconf-3100200.tar.gz | |
− | + | tar xvzf sqlite-autoconf-3100200.tar.gz | |
− | + | cd sqlite-autoconf-3100200 | |
− | + | ./configure --prefix="$HOME/prefix" --disable-shared --disable-dynamic-extensions | |
− | tar | + | make |
− | cd sqlite-autoconf- | + | make install |
− | ./configure --prefix $HOME/ | ||
− | == | + | == Compile wxWidgets == |
− | + | cd ~/src | |
− | http://sourceforge.net/projects/ | + | curl -OL http://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.tar.bz2 |
+ | tar xvjf wxWidgets-3.0.2.tar.bz2 | ||
+ | cd wxWidgets-3.0.2 | ||
+ | ./configure --prefix="$HOME/prefix" --disable-shared --disable-webkit | ||
+ | make | ||
+ | make install | ||
− | + | == Compile libfilezilla == | |
− | + | cd ~/src | |
− | + | curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.3.0.tar.bz2 | |
− | + | tar xf libfilezilla-0.3.0.tar.bz2 | |
− | + | cd libfilezilla-0.3.0 | |
− | + | ./configure --prefix="$HOME/prefix" --disable-shared | |
− | + | make | |
− | + | make install | |
− | |||
− | |||
− | cd | ||
− | ./configure -- | ||
− | |||
− | |||
− | |||
− | == | + | == Compile FileZilla == |
− | + | cd ~/src | |
+ | curl -OL http://download.filezilla-project.org/client/FileZilla_3.14.1_src.tar.bz2 | ||
+ | tar xvjf FileZilla_3.14.1_src.tar.bz2 | ||
+ | cd filezilla-3.14.1 | ||
+ | ./configure | ||
+ | make |
Revision as of 21:32, 22 January 2016
This documentation explains how to setup a build environment for FileZilla 3 and how to compile it under Mac OS X using Xcode. These directions have been tested under OS X 10.11 on an Intel Mac. Resulting binaries are for OS X 10.7 or later.
Xcode
You need to download and install the latest version of Xcode from https://developer.apple.com/xcode/download/
Build environment
Open a Terminal and type the following:
mkdir -p "$HOME/prefix" mkdir -p "$HOME/src" export CC="clang -mmacosx-version-min=10.7" export CXX="clang++ -std=c++14 -stdlib=libc++ -mmacosx-version-min=10.7" export AS="as -mmacosx-version-min=10.7" export LD="ld -macosx_version_min 10.7" export PATH="$PATH:$HOME/prefix/bin" export CPPFLAGS="-I$HOME/prefix/include" export LDFLAGS="-L$HOME/prefix/lib" export LD_LIBRARY_PATH="$HOME/prefix/lib" export PKG_CONFIG_PATH="$HOME/prefix/lib/pkgconfig"
If you ever close the terminal and reopen it, repeat the above steps before you continue.
pkg-config
cd ~/src # Note that we cannot use the newer pkg-config 0.29, it doesn't link on OS X. curl -OL http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz tar xvf pkg-config-0.28.tar.gz cd pkg-config-0.28 ./configure --prefix="$HOME/prefix" --disable-shared --with-internal-glib make make install
GMP
cd ~/src curl -OL https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz tar xvf gmp-6.1.0.tar.xz cd gmp-6.1.0 ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat make make install
Nettle
cd ~/src curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.1.tar.gz tar xvf nettle-3.1.tar.gz cd nettle-3.1 ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat make make install
GnuTLS
cd ~/src curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-3.4.8.tar.xz tar xvf gnutls-3.4.8.tar.xz cd gnutls-3.4.8 ./configure --prefix="$HOME/prefix" --disable-shared --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts make make install
Compile SQLite
cd ~/src curl -OL http://sqlite.org/2016/sqlite-autoconf-3100200.tar.gz tar xvzf sqlite-autoconf-3100200.tar.gz cd sqlite-autoconf-3100200 ./configure --prefix="$HOME/prefix" --disable-shared --disable-dynamic-extensions make make install
Compile wxWidgets
cd ~/src curl -OL http://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.tar.bz2 tar xvjf wxWidgets-3.0.2.tar.bz2 cd wxWidgets-3.0.2 ./configure --prefix="$HOME/prefix" --disable-shared --disable-webkit make make install
Compile libfilezilla
cd ~/src curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.3.0.tar.bz2 tar xf libfilezilla-0.3.0.tar.bz2 cd libfilezilla-0.3.0 ./configure --prefix="$HOME/prefix" --disable-shared make make install
Compile FileZilla
cd ~/src curl -OL http://download.filezilla-project.org/client/FileZilla_3.14.1_src.tar.bz2 tar xvjf FileZilla_3.14.1_src.tar.bz2 cd filezilla-3.14.1 ./configure make