- libuecc (>= v6; >= v7 recommended; developed together with fastd)
- libsodium or NaCl (for most crypto methods)
- bison (>= 2.5)
- libcap (if WITH_CAPABILITIES is enabled; Linux only; can be disabled if you don’t need POSIX capability support)
- libjson-c (if WITH_STATUS_SOCKET is enabled)
- libssl (if ENABLE_OPENSSL is enabled; provides fast AES implementations)
fastd uses the CMake build system. The libuecc build works the same.
# Get fastd (or use the release tarballs)
git clone git://git.universe-factory.net/fastd
# Create a build dir
cmake ../fastd -DCMAKE_BUILD_TYPE=RELEASE # Set DEBUG instead of RELEASE if you plan to develop on fastd
# Build fastd, binary can be found in the src subdir of the build dir
# Install in the system
CMake will fail if any of fastd’s dependencies can’t be found. The build can be configured with the ccmake tool
if it is installed (in package
cmake-curses-gui on Debian).
There are a few more options besides
CMAKE_BUILD_TYPE that can be given to cmake with
By default, fastd will try to build against libsodium. If you want to use NaCl instead, set ENABLE_LIBSODIUM=OFF
If you have a recent enough toolchain (GCC 4.8 or higher recommended), you can enable link-time optimization with ENABLE_LTO=ON to get slightly better optimized binaries
If you want to use LTO with a binutils version without linker plugin support, you need to use the GCC versions of ar, nm and ranlib by setting the following variables:
CMAKE_AR=/usr/bin/gcc-ar CMAKE_NM=/usr/bin/gcc-nm CMAKE_RANLIB=/usr/bin/gcc-ranlib
You can see all CMake options by calling
ccmake .in the build directory after running cmake. Use the t key to toggle display between simple and advanced view and use c and then g to update the configuration after making changes in ccmake.