Building fastd

Dependencies

  • libuecc (>= v6; >= v7 recommended; developed together with fastd)
  • libsodium or NaCl (for most crypto methods)
  • bison (>= 2.6)
  • pkg-config

Optional:

  • libcap (if capabilities is enabled; Linux only; can be disabled if you don’t need POSIX capability support)
  • libmnl (for L2TP offload support; Linux only)
  • libjson-c (if status_socket is enabled)
  • libssl (if cipher_aes128-ctr is enabled)

Building

Starting with v20, fastd uses the Meson build system.

# Get fastd (or use the release tarballs)
git clone https://github.com/NeoRaider/fastd.git

# Set up a build dir
meson setup fastd fastd-build -Dbuildtype=release
cd fastd-build

# Build fastd, binary can be found in the src subdir of the build dir
ninja

# Install in the system
ninja install

Build settings

The build can be configured using the command meson configure; running it without any additional arguments will show all available variables. Settings can be passed to meson setup or meson configure using -DVARIABLE=VALUE.

  • By default, fastd will build against libsodium. If you want to use NaCl instead, add -Duse_nacl=true
  • If you have a recent enough toolchain (GCC 4.8 or higher recommended), you can enable link-time optimization by adding -Db_lto=true
  • Instead of using an installed version of libmnl, it is possible to build it as part of fastd itself by setting -Dlibmnl_builtin=true. This is recommended for constrained targets only and not for regular Linux distributions.