bitcoin/doc/build-netbsd.md
Jarol Rodriguez d3e9a1c71b doc: update for NetBSD 9.2, add GUI Build Instructions
NetBSD doc has not seen any meaningful contribution since 2018.
This PR intends to update the docs so that one can successfully build on
the latest NetBSD release. It also adds dependency information and
instructions to build the GUI.
2022-07-06 21:27:05 -04:00

117 lines
2.7 KiB
Markdown

# NetBSD Build Guide
Updated for NetBSD [9.2](https://netbsd.org/releases/formal-9/NetBSD-9.2.html).
This guide describes how to build bitcoind, command-line utilities, and GUI on NetBSD.
## Preparation
### 1. Install Required Dependencies
Install the required dependencies the usual way you [install software on NetBSD](https://www.netbsd.org/docs/guide/en/chap-boot.html#chap-boot-pkgsrc).
The example commands below use `pkgin`.
```bash
pkgin install autoconf automake libtool pkg-config git gmake boost libevent
```
NetBSD currently ships with an older version of `gcc` than is needed to build. You should upgrade your `gcc` and then pass this new version to the configure script.
For example, grab `gcc9`:
```
pkgin install gcc9
```
Then, when configuring, pass the following:
```bash
./configure
...
CC="/usr/pkg/gcc9/bin/gcc" \
CXX="/usr/pkg/gcc9/bin/g++" \
...
```
See [dependencies.md](dependencies.md) for a complete overview.
### 2. Clone Bitcoin Repo
Clone the Bitcoin Core repository to a directory. All build scripts and commands will run from this directory.
```bash
git clone https://github.com/bitcoin/bitcoin.git
```
### 3. Install Optional Dependencies
#### Wallet Dependencies
It is not necessary to build wallet functionality to run bitcoind or the GUI.
###### Descriptor Wallet Support
`sqlite3` is required to enable support for [descriptor wallets](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md).
```bash
pkgin install sqlite3
```
###### Legacy Wallet Support
`db4` is required to enable support for legacy wallets.
```bash
pkgin install db4
```
#### GUI Dependencies
Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install `qt5`.
```bash
pkgin install qt5
```
The GUI can encode addresses in a QR Code. To build in QR support for the GUI, install `qrencode`.
```bash
pkgin install qrencode
```
#### Test Suite Dependencies
There is an included test suite that is useful for testing code changes when developing.
To run the test suite (recommended), you will need to have Python 3 installed:
```bash
pkgin install python37
```
### Building Bitcoin Core
**Note**: Use `gmake` (the non-GNU `make` will exit with an error).
### 1. Configuration
There are many ways to configure Bitcoin Core. Here is an example that
explicitly disables the wallet and GUI:
```bash
./autogen.sh
./configure --without-wallet --with-gui=no \
CPPFLAGS="-I/usr/pkg/include" \
MAKE=gmake
```
For a full list of configuration options, see the output of `./configure --help`
### 2. Compile
Build and run the tests:
```bash
gmake # use "-j N" here for N parallel jobs
gmake check # Run tests if Python 3 is available
```