Skip to content
Libbitcoin Build System
M4 CMake Shell Batchfile C++ PowerShell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
examples Store common example code here vs. in repos. Jan 1, 2018
img Add independent client and server stack images. Mar 18, 2017
library
m4 Add boost_log_setup m4, correct permissions on boost_log. Feb 23, 2018
mirror Mirror boost tarballs, swap sourceforge url for github (temporary). Jul 17, 2015
props
sandbox
templates
.gitignore Add Find.cmake module files. Oct 17, 2018
.travis.yml
AUTHORS Update GNU default documents. Feb 12, 2017
COPYING
README.md
generate.cmd Update copyright year. Jan 4, 2019
generate.sh
generate.xml Update to latest libsecp256k1. Oct 28, 2019
gsl.copy_modules.cmd
gsl.copy_modules.sh Update copyright year. Jan 4, 2019
gsl.copy_properties.cmd Update copyright year. Jan 4, 2019
gsl.copy_properties.sh Remove unused function and unneeded nests Dec 16, 2019
gsl.generate_artifacts.cmd
gsl.generate_artifacts.sh
utilities.gsl Correct get_files parameterization in CMakeLists generation. Mar 11, 2019

README.md

Build Status

Libbitcoin Build

Libbitcoin Build System

Libbitcoin Build uses templates and XML data to generate build artifacts for the following libbitcoin libraries.

  • libbitcoin Coverage Status libbitcoin-system
  • libbitcoin-blockchain Coverage Status libbitcoin-blockchain
  • libbitcoin-client Coverage Status libbitcoin-client
  • libbitcoin-consensus Coverage Status libbitcoin-consensus
  • libbitcoin-database Coverage Status libbitcoin-database
  • libbitcoin-explorer Coverage Status libbitcoin-explorer
  • libbitcoin-network Coverage Status libbitcoin-network
  • libbitcoin-node Coverage Status libbitcoin-node
  • libbitcoin-protocol Coverage Status libbitcoin-protocol
  • libbitcoin-server Coverage Status libbitcoin-server

Notes on Badges

  • libitcoin-client coverage does not reflect the effect of libitcoin-explorer network tests.
  • libitcoin-explorer coverage does not reflect the effect of network tests.
  • libitcoin-network coverage does not reflect the effect of network tests.
  • Current converage is inflated by the fact that only files with some level of coverage are counted.

The artifacts generated for each library are as follows. Package names coincide with libbitcoin repository names.

.appveyor.yml
.travis.yml
autogen.sh
build.cmd
configure.ac
install.sh
[library].pc.in
[library]_test_runner.sh
Makefile.am
include/bitcoin/[library].hpp
include/bitcoin/[library]/version.hpp
builds/cmake/CMakeLists.txt
builds/cmake/modules/[module].cmake
builds/msvc/nuget.config
builds/msvc/build/build_base.bat
builds/msvc/[edition]/[library]/[library].props
builds/msvc/[edition]/[library]/[library].vcxproj
builds/msvc/[edition]/[library]/[library].vcxproj.filters
builds/msvc/[edition]/[library]/[library].xml
builds/msvc/[edition]/[library]/packages.config
builds/msvc/[edition]/[library].import.props
builds/msvc/[edition]/[library].import.xml
builds/msvc/[edition]/[library].sln

These artifacts are merged into their respective repositories by libbitcoin maintainers. There is no need to build libbitcoin-build if you are not a maintainer in the process of applying a build configuration change.

The build system has a dependency on iMatix GSL, recently moved to the ZeroMQ repository. There are Linux/OSX and Visual Studio builds of GSL. A recent version is recommended. There is also a Windows single file executable available for download.

Dependencies

Quick Start

This is similar to the .travis.yml and is useful for local generation. In addition to generate.sh there is a generate.cmd for the native Windows environment.

# Create a top-level work_directory.
work_directory=$HOME/work
mkdir -p $work_directory
cd $work_directory

# Clone, build and install the gsl dependency.
# gsl requires pcre package (e.g. libpcre3-dev)
# On Ubuntu: sudo apt-get install libpcre3-dev
git clone https://github.com/imatix/gsl.git
cd gsl/src
make && sudo make install
cd ../../

# Clone all libbitcoin repositories.
git clone https://github.com/libbitcoin/libbitcoin-system.git
git clone https://github.com/libbitcoin/libbitcoin-blockchain.git
git clone https://github.com/libbitcoin/libbitcoin-build.git
git clone https://github.com/libbitcoin/libbitcoin-client.git
git clone https://github.com/libbitcoin/libbitcoin-consensus.git
git clone https://github.com/libbitcoin/libbitcoin-database.git
git clone https://github.com/libbitcoin/libbitcoin-explorer.git
git clone https://github.com/libbitcoin/libbitcoin-network.git
git clone https://github.com/libbitcoin/libbitcoin-node.git
git clone https://github.com/libbitcoin/libbitcoin-protocol.git
git clone https://github.com/libbitcoin/libbitcoin-server.git

# Run the libbitcoin-build generation script.
# Newly generated build files are copied to the cloned repos.
cd libbitcoin-build
./generate.sh
You can’t perform that action at this time.