Copyright (c) 2026 Agrarian Developers UNIX Build Notes These notes describe how to build Agrarian Core on Unix-based systems. For Ubuntu 24.04, prefer the shorter and tested path in `doc/build-ubuntu-24.md`. IMPORTANT Always use absolute paths when configuring and compiling Agrarian Core and its dependencies. Example: ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX $BDB_PREFIX must be an absolute path. Using $(pwd) ensures an absolute path is used. STANDARD BUILD WITH DEPENDS make -C depends HOST=x86_64-pc-linux-gnu NO_QT=0 -j$(nproc) ./autogen.sh CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure make -j$(nproc) make install (optional) The native depends wallet path currently builds Qt 6.8.3, OpenSSL 3.5.6, Boost 1.91.0, protobuf, Berkeley DB, and supporting libraries. For a daemon-only build: JOBS=1 ./contrib/build-linux.sh For a native Ubuntu desktop wallet build: JOBS=1 ./contrib/build-linux-wallet.sh DEPENDENCIES Required: - libssl : Crypto (RNG, ECC) - libboost : Utility (threading, data structures) - libevent : Networking (async networking) - libgmp : Bignum arithmetic Optional: - miniupnpc : UPnP support - libdb4.8 : Berkeley DB (wallet builds only) - qt : GUI support - protobuf : GUI payment protocol - libqrencode: QR code support - univalue : JSON parsing (bundled by default) - libzmq3 : ZMQ notifications (>= 4.0.0) See dependencies.md for version details. MEMORY REQUIREMENTS Minimum recommended: 1.5 GB RAM. Low memory systems: ./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768" UBUNTU / DEBIAN Build tools: sudo apt-get install build-essential libtool bsdmainutils autotools-dev autoconf pkg-config automake cmake ninja-build python3 curl git System libraries are needed only for non-depends builds. The deterministic depends build should be preferred for reproducibility. Libraries for a system-library build: sudo apt-get install libssl-dev libgmp-dev libevent-dev libboost-all-dev Berkeley DB 4.8 (wallet support): sudo apt-get install software-properties-common sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install libdb4.8-dev libdb4.8++-dev Optional: sudo apt-get install libminiupnpc-dev sudo apt-get install libzmq3-dev Qt GUI: Use the native depends wallet helper for Qt6: JOBS=1 ./contrib/build-linux-wallet.sh Disable GUI: ./configure --without-gui FEDORA Build tools: sudo dnf install which gcc-c++ libtool make autoconf automake openssl-devel libevent-devel boost-devel libdb4-devel libdb4-cxx-devel gmp-devel python3 Optional: sudo dnf install miniupnpc-devel zeromq-devel Qt: Native Qt6 builds are currently tested through the Ubuntu depends path. Fedora system-Qt builds are not part of the current verified path. HARDENING Enable: ./configure --enable-hardening Disable: ./configure --disable-hardening Verify: scanelf -e ./agrariand DISABLE WALLET MODE ./configure --disable-wallet ARM CROSS COMPILATION sudo apt-get install g++-arm-linux-gnueabihf curl cd depends make HOST=arm-linux-gnueabihf NO_QT=1 cd .. ./autogen.sh ./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++ make SMOKE TESTS After a native build, run: ./contrib/smoke-test-daemon.sh ./contrib/smoke-test-wallet.sh ./contrib/smoke-test-qt.sh