2.7 KiB
Prerequisites
-
GNU Autoconf (https://www.gnu.org/software/autoconf/) and the autoconf-archive macro collection (https://www.gnu.org/software/autoconf-archive/). These are only needed to run the bootstrap script, and are not necessary if your source distribution came with a pre-built
./configure
script. -
GNU Make.
-
Bash Shell. The
./configure
script relies on bashisms, so Bash is required. -
A version of GCC or Clang that supports C++17.
-
pkg-config
to locate dependencies. If your distribution does not provide it, you can get it from http://www.freedesktop.org/wiki/Software/pkg-config. -
The OpenSSL library to calculate cryptographic hashes. If your distribution does not provide it, you can get it from https://www.openssl.org.
-
The
libbrotlienc
andlibbrotlidec
libraries to provide implementation of the Brotli compression algorithm. They are available for download from the official repository https://github.com/google/brotli. -
cURL and its library. If your distribution does not provide it, you can get it from https://curl.haxx.se/.
-
The SQLite embedded database library, version 3.6.19 or higher. If your distribution does not provide it, please install it from http://www.sqlite.org/.
-
The Boehm garbage collector to reduce the evaluator’s memory consumption (optional). To enable it, install
pkgconfig
and the Boehm garbage collector, and pass the flag--enable-gc
toconfigure
. -
The
boost
library of version 1.66.0 or higher. It can be obtained from the official web site https://www.boost.org/. -
The
editline
library of version 1.14.0 or higher. It can be obtained from the its repository https://github.com/troglobit/editline. -
Recent versions of Bison and Flex to build the parser. (This is because Nix needs GLR support in Bison and reentrancy support in Flex.) For Bison, you need version 2.6, which can be obtained from the GNU FTP server. For Flex, you need version 2.5.35, which is available on SourceForge. Slightly older versions may also work, but ancient versions like the ubiquitous 2.5.4a won't. Note that these are only required if you modify the parser or when you are building from the Git repository.
-
The
libseccomp
is used to provide syscall filtering on Linux. This is an optional dependency and can be disabled passing a--disable-seccomp-sandboxing
option to theconfigure
script (Not recommended unless your system doesn't supportlibseccomp
). To get the library, visit https://github.com/seccomp/libseccomp.