2.2 KiB
2.2 KiB
Agrarian
Agrarian is a C++ cryptocurrency-style codebase with a deterministic depends/ build system for reproducible native and cross-compilation builds.
Repository Structure
depends/– deterministic third-party dependency build systemsrc/– core source code (includes subprojects likesecp256k1/andunivalue/)contrib/– helper scripts, tooling, packaging, and CI utilitiesshare/– auxiliary build and metadata scripts
System Requirements (Ubuntu)
Install required build tools:
sudo apt update
sudo apt install -y \
build-essential pkg-config autoconf automake libtool \
bsdmainutils python3 curl git
For Windows cross-compilation support:
sudo apt install -y mingw-w64
Building Dependencies (Deterministic Depends System)
All dependency builds are executed from within the depends/ directory.
Native Linux
cd depends
make -j"$(nproc)"
Windows Cross-Compile (64-bit)
cd depends
make HOST=x86_64-w64-mingw32 -j"$(nproc)"
Windows Cross-Compile (32-bit)
cd depends
make HOST=i686-w64-mingw32 -j"$(nproc)"
Artifacts are placed under:
depends/<host-triplet>/
Temporary build directories:
depends/work/
depends/built/
These directories should not be committed to version control.
Building Agrarian
Standard autotools workflow:
./autogen.sh
./configure
make -j"$(nproc)"
To see configuration options:
./configure --help
For current build notes, see:
doc/build-ubuntu-24.mdfor native Ubuntu daemon and wallet builds.doc/build-windows.mdfor Windows cross-compilation.doc/build-wallets.mdfor the repeatable desktop wallet quick start.
Running Tests
If enabled:
make check
Refer to scripts under contrib/ for additional CI or functional test flows.
Development Guidelines
- Do not commit
depends/work/,depends/built/, or host prefix directories. - Ensure executable permissions (100755) are intentional for shell scripts.
- Keep diffs minimal in
depends/to maintain reproducibility.
License
See the COPYING file for license details.