lbrycrd/depends
lbrynaut 9295adeb38 Rebase lbry on to Bitcoin 0.17.
This contains significant rebase / merge / testing work by Naut
<lbrynaut@protonmail.com>, Anthony Fieroni <bvbfan@abv.bg> and Brannon
King <countprimes@gmail.com>.
2020-03-26 15:39:51 +02:00
..
builders Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
hosts Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
packages Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
patches Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
.gitignore Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
config.guess Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
config.site.in Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
config.sub Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
description.md Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
funcs.mk Merge #15446: Improve depends debuggability 2019-04-08 10:19:14 -04:00
Makefile Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00
packages.md doc: Fix whitespace errs in .md files, bitcoin.conf, Info.plist.in, and find_bdb48.m4 2019-09-17 03:21:22 -04:00
README.md Rebase lbry on to Bitcoin 0.17. 2020-03-26 15:39:51 +02:00

Usage

To build dependencies for the current arch+OS:

make

To build for another arch/OS:

make HOST=host-platform-triplet

For example:

make HOST=x86_64-w64-mingw32 -j4

Bitcoin's configure script by default will ignore the depends output. In order for it to pick up libraries, tools, and settings from the depends build, you must point it at the appropriate --prefix directory generated by the build. In the above example, a prefix dir named x86_64-w64-mingw32 will be created. To use it for Bitcoin:

./configure --prefix=`pwd`/depends/x86_64-w64-mingw32

Common host-platform-triplets for cross compilation are:

  • i686-pc-linux-gnu for Linux 32 bit
  • x86_64-pc-linux-gnu for x86 Linux
  • x86_64-w64-mingw32 for Win64
  • x86_64-apple-darwin11 for MacOSX
  • arm-linux-gnueabihf for Linux ARM

No other options are needed, the paths are automatically configured.

Install the required dependencies: Ubuntu & Debian

For macOS cross compilation

sudo apt-get install curl librsvg2-bin libtiff-tools bsdmainutils cmake imagemagick libcap-dev libz-dev libbz2-dev python3-setuptools

For Win32/Win64 cross compilation

For linux (including i386, ARM) cross compilation

Common linux dependencies:

sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch

For linux ARM cross compilation:

sudo apt-get install g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf

For linux AARCH64 cross compilation:

sudo apt-get install g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
sudo apt-get install g++-riscv64-linux-gnu binutils-riscv64-linux-gnu

Dependency Options

The following can be set when running make: make FOO=bar

SOURCES_PATH: downloaded sources will be placed here
BASE_CACHE: built packages will be placed here
SDK_PATH: Path where sdk's can be found (used by OSX)
FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
NO_QT: Don't download/build/cache qt and its dependencies
NO_ZMQ: Don't download/build/cache packages needed for enabling zeromq
NO_WALLET: Don't download/build/cache libs needed to enable the wallet
NO_UPNP: Don't download/build/cache packages needed for enabling upnp
DEBUG: disable some optimizations and enable more runtime checking
RAPIDCHECK: build rapidcheck (experimental, requires cmake)
PROTOBUF: build protobuf (used for deprecated BIP70 support)
HOST_ID_SALT: Optional salt to use when generating host package ids
BUILD_ID_SALT: Optional salt to use when generating build package ids

If some packages are not built, for example make NO_WALLET=1, the appropriate options will be passed to bitcoin's configure. In this case, --disable-wallet.

Additional targets

download: run 'make download' to fetch all sources without building them
download-osx: run 'make download-osx' to fetch all sources needed for osx builds
download-win: run 'make download-win' to fetch all sources needed for win builds
download-linux: run 'make download-linux' to fetch all sources needed for linux builds

Other documentation