Editing Compiling FileZilla 3 under macOS
From FileZilla Wiki
Jump to navigationJump to searchWarning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | This documentation explains how to setup a build environment for [[FileZilla 3]] and how to compile it 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== | + | == Xcode == |
+ | |||
You need to download and install the latest version of Xcode from https://developer.apple.com/xcode/download/ | You need to download and install the latest version of Xcode from https://developer.apple.com/xcode/download/ | ||
− | ==Build environment== | + | == Build environment == |
+ | |||
Open a Terminal and type the following: | Open a Terminal and type the following: | ||
+ | |||
mkdir -p "$HOME/prefix" | mkdir -p "$HOME/prefix" | ||
mkdir -p "$HOME/src" | mkdir -p "$HOME/src" | ||
− | export CC="clang -mmacosx-version-min=10. | + | export CC="clang -mmacosx-version-min=10.7" |
− | export CXX="clang++ -std=c++ | + | 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 AS="as -mmacosx-version-min=10. | + | export PATH="$PATH:$HOME/prefix/bin" |
− | export LD="ld -macosx_version_min 10. | ||
− | export PATH="$HOME/prefix/bin | ||
export CPPFLAGS="-I$HOME/prefix/include" | export CPPFLAGS="-I$HOME/prefix/include" | ||
export LDFLAGS="-L$HOME/prefix/lib" | export LDFLAGS="-L$HOME/prefix/lib" | ||
Line 23: | Line 25: | ||
If you ever close the terminal and reopen it, repeat the above steps before you continue. | If you ever close the terminal and reopen it, repeat the above steps before you continue. | ||
− | ==pkg-config== | + | == pkg-config == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL | + | # Note that we cannot use the newer pkg-config 0.29, it doesn't link on OS X. |
− | tar xvf pkg-config-0. | + | curl -OL http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz |
− | cd pkg-config-0. | + | tar xvf pkg-config-0.28.tar.gz |
− | ./configure --prefix="$HOME/prefix" -- | + | cd pkg-config-0.28 |
+ | ./configure --prefix="$HOME/prefix" --disable-shared --with-internal-glib | ||
make | make | ||
make install | make install | ||
− | == | + | == GMP == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL https:// | + | curl -OL https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz |
− | tar | + | tar xvf gmp-6.1.0.tar.xz |
− | cd | + | cd gmp-6.1.0 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat |
make | make | ||
make install | make install | ||
− | == | + | == Nettle == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL https:// | + | curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.1.tar.gz |
− | tar xvf | + | tar xvf nettle-3.1.tar.gz |
− | cd | + | cd nettle-3.1 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat |
make | make | ||
make install | make install | ||
− | == | + | == GnuTLS == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-3.4.8.tar.xz |
− | tar xvf | + | tar xvf gnutls-3.4.8.tar.xz |
− | cd | + | cd gnutls-3.4.8 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts |
make | make | ||
make install | make install | ||
− | == | + | == Compile SQLite == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL http://sqlite.org/2016/sqlite-autoconf-3100200.tar.gz |
− | tar | + | tar xvzf sqlite-autoconf-3100200.tar.gz |
− | cd | + | cd sqlite-autoconf-3100200 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared --disable-dynamic-extensions |
make | make | ||
make install | make install | ||
− | ==Compile | + | == Compile wxWidgets == |
+ | |||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL http://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.tar.bz2 |
− | tar | + | tar xvjf wxWidgets-3.0.2.tar.bz2 |
− | cd | + | cd wxWidgets-3.0.2 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared --disable-webkit |
make | make | ||
make install | make install | ||
− | == | + | == Compile libfilezilla == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
cd ~/src | cd ~/src | ||
− | curl -OL https:/ | + | curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.3.0.tar.bz2 |
− | tar | + | tar xf libfilezilla-0.3.0.tar.bz2 |
− | cd | + | cd libfilezilla-0.3.0 |
− | ./configure --prefix="$HOME/prefix" -- | + | ./configure --prefix="$HOME/prefix" --disable-shared |
make | make | ||
make install | make install | ||
− | ==Compile | + | == Compile FileZilla == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL http://download.filezilla-project.org/client/FileZilla_3.14.1_src.tar.bz2 |
− | tar xvjf FileZilla_3. | + | tar xvjf FileZilla_3.14.1_src.tar.bz2 |
− | cd filezilla-3. | + | cd filezilla-3.14.1 |
− | ./configure | + | ./configure |
make | make |