aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJarol Rodriguez <jarolrod@tutanota.com>2022-07-05 21:59:44 -0400
committerJarol Rodriguez <jarolrod@tutanota.com>2022-07-06 21:27:05 -0400
commitd3e9a1c71bef1d730b5820f85e9758af54267ac3 (patch)
tree97521b54e98200eb4a98c8a7660cc8f9be1283e8 /doc
parent195e07feaf7bbeedaa675d7cf21c7160afe2c9fa (diff)
downloadbitcoin-d3e9a1c71bef1d730b5820f85e9758af54267ac3.tar.xz
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.
Diffstat (limited to 'doc')
-rw-r--r--doc/build-netbsd.md122
1 files changed, 73 insertions, 49 deletions
diff --git a/doc/build-netbsd.md b/doc/build-netbsd.md
index 9cec201faf..0f05cdcba7 100644
--- a/doc/build-netbsd.md
+++ b/doc/build-netbsd.md
@@ -1,92 +1,116 @@
-NetBSD Build Guide
-======================
-**Updated for NetBSD [8.0](https://www.netbsd.org/releases/formal-8/NetBSD-8.0.html)**
+# NetBSD Build Guide
-This guide describes how to build bitcoind and command-line utilities on NetBSD.
+Updated for NetBSD [9.2](https://netbsd.org/releases/formal-9/NetBSD-9.2.html).
-This guide does not contain instructions for building the GUI.
+This guide describes how to build bitcoind, command-line utilities, and GUI on NetBSD.
-Preparation
--------------
+## Preparation
-You will need the following modules, which can be installed via pkgsrc or pkgin:
+### 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
```
-autoconf
-automake
-boost
-git
-gmake
-libevent
-libtool
-pkg-config
-python37
-git clone https://github.com/bitcoin/bitcoin.git
+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.
-### Building Bitcoin Core
+### 2. Clone Bitcoin Repo
-**Important**: Use `gmake` (the non-GNU `make` will exit with an error).
+Clone the Bitcoin Core repository to a directory. All build scripts and commands will run from this directory.
-#### With descriptor wallet:
+```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).
-The descriptor wallet uses `sqlite3`. You can install it using:
```bash
pkgin install sqlite3
```
+###### Legacy Wallet Support
+
+`db4` is required to enable support for legacy wallets.
+
```bash
-./autogen.sh
-./configure --with-gui=no --without-bdb \
- CPPFLAGS="-I/usr/pkg/include" \
- LDFLAGS="-L/usr/pkg/lib" \
- BOOST_CPPFLAGS="-I/usr/pkg/include" \
- MAKE=gmake
+pkgin install db4
```
-#### With legacy wallet:
-
-BerkeleyDB is use for legacy wallet functionality.
+#### GUI Dependencies
-It is recommended to use Berkeley DB 4.8. You cannot use the BerkeleyDB library
-from ports.
-You can use [the installation script included in contrib/](/contrib/install_db4.sh) like so:
+Bitcoin Core includes a GUI built with the cross-platform Qt Framework. To compile the GUI, we need to install `qt5`.
```bash
-./contrib/install_db4.sh `pwd`
+pkgin install qt5
```
-from the root of the repository. Then set `BDB_PREFIX` for the next section:
+The GUI can encode addresses in a QR Code. To build in QR support for the GUI, install `qrencode`.
```bash
-export BDB_PREFIX="$PWD/db4"
+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
-./autogen.sh
-./configure --with-gui=no CPPFLAGS="-I/usr/pkg/include" \
- LDFLAGS="-L/usr/pkg/lib" \
- BOOST_CPPFLAGS="-I/usr/pkg/include" \
- BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" \
- BDB_CFLAGS="-I${BDB_PREFIX}/include" \
- MAKE=gmake
+pkgin install python37
```
-#### Without wallet:
+### 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 --with-gui=no --disable-wallet \
+./configure --without-wallet --with-gui=no \
CPPFLAGS="-I/usr/pkg/include" \
- LDFLAGS="-L/usr/pkg/lib" \
- BOOST_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
+gmake check # Run tests if Python 3 is available
```