Difference between revisions of "Compiling FileZilla 3 under macOS"

From FileZilla Wiki
Jump to navigationJump to search
Line 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.12 on an Intel Mac. Resulting binaries are for OS X 10.9 or later.
+
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
# Note that we cannot use the newer pkg-config 0.29, it doesn't link on OS X.
+
  curl -OL https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
  curl -OL http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz
+
  tar xvf pkg-config-0.29.2.tar.gz
  tar xvf pkg-config-0.28.tar.gz
+
  cd pkg-config-0.29.2
  cd pkg-config-0.28
+
  ./configure --prefix="$HOME/prefix" --enable-shared --disable-static --with-internal-glib
  ./configure --prefix="$HOME/prefix" --disable-shared --with-internal-glib
 
 
  make
 
  make
 
  make install
 
  make install
Line 34: Line 33:
 
==libidn==
 
==libidn==
 
  cd ~/src
 
  cd ~/src
  curl -OL http://ftp.gnu.org/gnu/libidn/libidn-1.32.tar.gz
+
  curl -OL https://ftp.gnu.org/gnu/libidn/libidn-1.35.tar.gz
  tar xvzf libidn-1.32.tar.gz
+
  tar xvzf libidn-1.35.tar.gz
  cd libidn-1.32
+
  cd libidn-1.35
  ./configure --prefix="$HOME/prefix" --disable-shared
+
  ./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-shared --enable-fat
+
  ./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.3.tar.gz
+
  curl -OL https://ftp.gnu.org/gnu/nettle/nettle-3.4.1.tar.gz
  tar xvf nettle-3.3.tar.gz
+
  tar xvf nettle-3.4.1.tar.gz
  cd nettle-3.3
+
  cd nettle-3.4.1
  ./configure --prefix="$HOME/prefix" --disable-shared --enable-fat  
+
  ./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.5/gnutls-3.5.16.tar.xz
+
  curl -OL ftp://ftp.gnutls.org/gcrypt/gnutls/v3.6/gnutls-3.6.7.1.tar.xz
  tar xvf gnutls-3.5.16.tar.xz
+
  tar xvf gnutls-3.6.7.1.tar.xz
  cd gnutls-3.5.16
+
  cd gnutls-3.6.7
  ./configure --prefix="$HOME/prefix" --disable-shared --with-included-libtasn1 --without-p11-kit --disable-doc --enable-local-libopts --disable-nls --with-included-unistring
+
  ./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 http://sqlite.org/2017/sqlite-autoconf-3160200.tar.gz
+
  curl -OL https://sqlite.org/2018/sqlite-autoconf-3260000.tar.gz
  tar xvzf sqlite-autoconf-3160200.tar.gz
+
  tar xvzf sqlite-autoconf-3260000.tar.gz
  cd sqlite-autoconf-3160200
+
  cd sqlite-autoconf-3260000
  ./configure --prefix="$HOME/prefix" --disable-shared --disable-dynamic-extensions
+
  ./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 http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.7.tar.xz
+
  curl -OL https://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.8.tar.xz
  tar xvf gettext-0.19.7.tar.xz
+
  tar xvf gettext-0.19.8.tar.xz
  cd gettext-0.19.7
+
  cd gettext-0.19.8
  ./configure --prefix="$HOME/prefix" --disable-shared
+
  ./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.11.1.tar.bz2
+
  curl -OL https://download.filezilla-project.org/libfilezilla/libfilezilla-0.18.0.tar.bz2
  tar xf libfilezilla-0.11.1.tar.bz2
+
  tar xf libfilezilla-0.18.0.tar.bz2
  cd libfilezilla-0.11.1
+
  cd libfilezilla-0.18.0
  ./configure --prefix="$HOME/prefix" --disable-shared
+
  ./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 http://download.filezilla-project.org/client/FileZilla_3.29.0_src.tar.bz2
+
  curl -OL https://download.filezilla-project.org/client/FileZilla_3.44.1_src.tar.bz2
  tar xvjf FileZilla_3.29.0_src.tar.bz2
+
  tar xvjf FileZilla_3.44.1_src.tar.bz2
  cd filezilla-3.29.0
+
  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