feather/BUILDING.md

111 lines
2.9 KiB
Markdown
Raw Normal View History

2021-01-15 21:04:53 +00:00
## Buildbot builds
The docker build bins can be found here: https://build.featherwallet.org/files/
## Docker static builds
Static builds via Docker are done in 3 steps:
1. Cloning this repository (+submodules)
2. Creating a base Docker image
3. Using the base image to compile a build
2020-12-10 17:13:18 +00:00
### Linux (reproducible)
2020-12-10 17:13:18 +00:00
The docker image for reproducible Linux static builds uses Ubuntu 16.04 and compiles the required libraries statically
so that the resulting Feather binary is static. For more information, check the Dockerfile: `Dockerfile`.
#### 1. Clone
```bash
2021-02-15 18:51:32 +00:00
git clone --branch master --recursive https://git.featherwallet.org/feather/feather.git
cd feather
```
2021-07-08 16:35:30 +00:00
Replace `master` with the desired version tag (e.g. `beta-8`) to build the release binary.
2020-12-10 17:13:18 +00:00
#### 2. Base image
```bash
2020-12-10 17:13:18 +00:00
docker build --tag feather:linux --build-arg THREADS=4 .
```
2021-07-09 09:50:24 +00:00
Building the base image takes a while. You only need to build the base image once per release.
#### 3. Build
2021-01-15 21:04:53 +00:00
##### Standalone binary
```bash
2021-07-09 09:50:24 +00:00
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'WITH_SCANNER=Off make release-static -j8'
```
2020-12-10 17:13:18 +00:00
If you're re-running a build make sure to `rm -rf build/` first.
2020-12-10 17:13:18 +00:00
The resulting binary can be found in `build/bin/feather`.
2021-01-15 21:04:53 +00:00
##### AppImage
```bash
2021-07-09 09:50:24 +00:00
rm -rf build
docker run --rm -it -v $PWD:/feather -w /feather feather:linux sh -c 'make release-static -j8'
2021-05-22 19:53:42 +00:00
docker run --rm -it -v $PWD:/feather -w /feather/build feather:linux ../contrib/build-appimage.sh
2021-01-15 21:04:53 +00:00
```
2021-05-22 19:53:42 +00:00
The resulting AppImage will be located in `./build`.
2021-01-10 23:40:17 +00:00
### Windows (reproducible)
#### 1. Clone
```bash
2021-02-15 18:51:32 +00:00
git clone --branch master --recursive https://git.featherwallet.org/feather/feather.git
cd feather
```
2021-07-08 16:35:30 +00:00
Replace `master` with the desired version tag (e.g. `beta-8`) to build the release binary.
2021-01-10 23:40:17 +00:00
#### 2. Base image
```bash
2021-01-10 23:40:17 +00:00
docker build -f Dockerfile.windows --tag feather:win --build-arg THREADS=4 .
```
2021-01-10 23:40:17 +00:00
Building the base image takes a while. You only need to build the base image once.
#### 3. Build
```bash
2021-07-09 09:50:24 +00:00
docker run --rm -it -v $PWD:/feather -w /feather feather:win sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j4'
```
2021-01-10 23:40:17 +00:00
If you're re-running a build make sure to `rm -rf build/` first.
2021-01-10 23:40:17 +00:00
The resulting binary can be found in `build/x86_64-w64-mingw32/release/bin/feather.exe`.
## macOS
For MacOS it's easiest to leverage [brew](https://brew.sh) to install the required dependencies.
```bash
HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" \
brew install boost zmq openssl libpgm miniupnpc libsodium expat libunwind-headers protobuf libgcrypt qrencode ccache cmake pkgconfig git
```
Clone the repository.
```bash
2021-02-15 18:51:32 +00:00
git clone --recursive https://git.featherwallet.org/feather/feather.git
```
Get the latest LTS from here: https://www.qt.io/offline-installers and install.
Build Feather.
```bash
CMAKE_PREFIX_PATH=~/Qt5.15.1/5.15.1/clang_64 make mac-release
```
2020-12-11 13:36:08 +00:00
The resulting Mac OS application can be found `build/bin/feather.app` and will **not** have Tor embedded.