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 OS X 10. | + | 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.14 on an Intel Mac. Resulting binaries are for OS X 10.11 or later. |
__TOC__ | __TOC__ | ||
Line 24: | Line 24: | ||
==pkg-config== | ==pkg-config== | ||
cd ~/src | cd ~/src | ||
− | + | curl -OL https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz | |
− | curl -OL | + | tar xvf pkg-config-0.29.2.tar.gz |
− | tar xvf pkg-config-0. | + | cd pkg-config-0.29.2 |
− | cd pkg-config-0. | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --with-internal-glib |
− | ./configure --prefix="$HOME/prefix" --disable- | ||
make | make | ||
make install | make install | ||
Line 34: | Line 33: | ||
==libidn== | ==libidn== | ||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL https://ftp.gnu.org/gnu/libidn/libidn-1.35.tar.gz |
− | tar xvzf libidn-1. | + | tar xvzf libidn-1.35.tar.gz |
− | cd libidn-1. | + | cd libidn-1.35 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static |
make | make | ||
make install | make install | ||
Line 46: | Line 45: | ||
tar xvf gmp-6.1.2.tar.xz | tar xvf gmp-6.1.2.tar.xz | ||
cd gmp-6.1.2 | cd gmp-6.1.2 | ||
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat |
make | make | ||
make install | make install | ||
Line 52: | Line 51: | ||
==Nettle== | ==Nettle== | ||
cd ~/src | cd ~/src | ||
− | curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3. | + | curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz |
− | tar xvf nettle-3. | + | tar xvf nettle-3.4.1.tar.gz |
− | cd nettle-3. | + | cd nettle-3.4.1 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat |
make | make | ||
make install | make install | ||
Line 61: | Line 60: | ||
==GnuTLS== | ==GnuTLS== | ||
cd ~/src | cd ~/src | ||
− | curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3. | + | curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.6/gnutls-3.6.7.1.tar.xz |
− | tar xvf gnutls-3. | + | tar xvf gnutls-3.6.7.1.tar.xz |
− | cd gnutls-3. | + | cd gnutls-3.6.7 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts --disable-nls --with-included-unistring |
make | make | ||
make install | make install | ||
Line 70: | Line 69: | ||
==Compile SQLite== | ==Compile SQLite== | ||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL https://sqlite.org/2018/sqlite-autoconf-3260000.tar.gz |
− | tar xvzf sqlite-autoconf- | + | tar xvzf sqlite-autoconf-3260000.tar.gz |
− | cd sqlite-autoconf- | + | cd sqlite-autoconf-3260000 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --disable-dynamic-extensions |
make | make | ||
make install | make install | ||
Line 79: | Line 78: | ||
==gettext== | ==gettext== | ||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL https://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.tar.xz |
− | tar xvf gettext-0.19. | + | tar xvf gettext-0.19.8.tar.xz |
− | cd gettext-0.19. | + | cd gettext-0.19.8 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static |
make | make | ||
make install | make install | ||
Line 91: | Line 90: | ||
tar xvf wxWidgets-3.0.4.tar.bz2 | tar xvf wxWidgets-3.0.4.tar.bz2 | ||
cd wxWidgets-3.0.4 | cd wxWidgets-3.0.4 | ||
− | ./configure --prefix="$HOME/prefix" --disable-shared --disable-webkit --disable-webview --with-macosx-version-min=10.11 | + | ./configure --prefix="$HOME/prefix" --disable-shared --enable-static --disable-webkit --disable-webview --with-macosx-version-min=10.11 |
make | make | ||
make install | make install | ||
Line 97: | Line 96: | ||
==Compile libfilezilla== | ==Compile libfilezilla== | ||
cd ~/src | cd ~/src | ||
− | curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0. | + | curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.18.0.tar.bz2 |
− | tar xf libfilezilla-0. | + | tar xf libfilezilla-0.18.0.tar.bz2 |
− | cd libfilezilla-0. | + | cd libfilezilla-0.18.0 |
− | ./configure --prefix="$HOME/prefix" --disable- | + | ./configure --prefix="$HOME/prefix" --enable-shared --disable-static |
make | make | ||
make install | make install | ||
Line 106: | Line 105: | ||
==Compile FileZilla== | ==Compile FileZilla== | ||
cd ~/src | cd ~/src | ||
− | curl -OL | + | curl -OL https://download.filezilla-project.org/client/FileZilla_3.44.1_src.tar.bz2 |
− | tar xvjf FileZilla_3. | + | tar xvjf FileZilla_3.44.1_src.tar.bz2 |
− | cd filezilla-3. | + | cd filezilla-3.44.1 |
./configure --with-pugixml=builtin | ./configure --with-pugixml=builtin | ||
make | make |
Revision as of 19:37, 13 August 2019
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.14 on an Intel Mac. Resulting binaries are for OS X 10.11 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.11" export CXX="clang++ -std=c++17 -stdlib=libc++ -mmacosx-version-min=10.11" export OBJC="clang -mmacosx-version-min=10.11" export AS="as -mmacosx-version-min=10.11" export LD="ld -macosx_version_min 10.11" export PATH="$HOME/prefix/bin:$PATH" 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 curl -OL https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz tar xvf pkg-config-0.29.2.tar.gz cd pkg-config-0.29.2 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --with-internal-glib make make install
libidn
cd ~/src curl -OL https://ftp.gnu.org/gnu/libidn/libidn-1.35.tar.gz tar xvzf libidn-1.35.tar.gz cd libidn-1.35 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static make make install
GMP
cd ~/src curl -OL https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz tar xvf gmp-6.1.2.tar.xz cd gmp-6.1.2 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat make make install
Nettle
cd ~/src curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz tar xvf nettle-3.4.1.tar.gz cd nettle-3.4.1 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --enable-fat make make install
GnuTLS
cd ~/src curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.6/gnutls-3.6.7.1.tar.xz tar xvf gnutls-3.6.7.1.tar.xz cd gnutls-3.6.7 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts --disable-nls --with-included-unistring make make install
Compile SQLite
cd ~/src curl -OL https://sqlite.org/2018/sqlite-autoconf-3260000.tar.gz tar xvzf sqlite-autoconf-3260000.tar.gz cd sqlite-autoconf-3260000 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --disable-dynamic-extensions make make install
gettext
cd ~/src curl -OL https://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.tar.xz tar xvf gettext-0.19.8.tar.xz cd gettext-0.19.8 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static make make install
Compile wxWidgets
cd ~/src curl -OL https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.4/wxWidgets-3.0.4.tar.bz2 tar xvf wxWidgets-3.0.4.tar.bz2 cd wxWidgets-3.0.4 ./configure --prefix="$HOME/prefix" --disable-shared --enable-static --disable-webkit --disable-webview --with-macosx-version-min=10.11 make make install
Compile libfilezilla
cd ~/src curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.18.0.tar.bz2 tar xf libfilezilla-0.18.0.tar.bz2 cd libfilezilla-0.18.0 ./configure --prefix="$HOME/prefix" --enable-shared --disable-static make make install
Compile FileZilla
cd ~/src curl -OL https://download.filezilla-project.org/client/FileZilla_3.44.1_src.tar.bz2 tar xvjf FileZilla_3.44.1_src.tar.bz2 cd filezilla-3.44.1 ./configure --with-pugixml=builtin make