2016-03-16 06:36:17 +01:00
|
|
|
Library Requirements
|
|
|
|
--------------------
|
2016-02-25 05:55:00 +01:00
|
|
|
|
2016-03-16 06:36:17 +01:00
|
|
|
You will need several development libraries:
|
2016-08-18 06:55:13 +02:00
|
|
|
* libsqlite3: for database support.
|
2016-08-19 03:35:32 +02:00
|
|
|
* libgmp: for secp256k1
|
2017-04-04 08:02:57 +02:00
|
|
|
|
|
|
|
For actually doing development and running the tests, you will also need:
|
|
|
|
* pip3: to install python-bitcoinlib
|
|
|
|
* asciidoc: for formatting the man pages (if you change them)
|
|
|
|
* valgrind: for extra debugging checks
|
2016-03-16 06:36:17 +01:00
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
You will also need a version of bitcoind with segregated witness and
|
|
|
|
estimatesmartfee economical node, such as the 0.15 or above.
|
2016-05-26 07:55:24 +02:00
|
|
|
|
2017-08-28 17:59:01 +02:00
|
|
|
To Build on Ubuntu 15.10 or above
|
2016-08-13 03:09:32 +02:00
|
|
|
---------------------
|
|
|
|
|
|
|
|
Get dependencies:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
sudo apt-get install -y \
|
|
|
|
autoconf automake build-essential git libtool libgmp-dev \
|
|
|
|
libsqlite3-dev python python3 net-tools libsodium-dev
|
2017-08-10 16:09:02 +02:00
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
If you don't have Bitcoin installed locally you'll need to install that
|
|
|
|
as well:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
sudo apt-get install software-properties-common
|
|
|
|
sudo add-apt-repository ppa:bitcoin/bitcoin
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install -y bitcoind
|
2017-04-04 08:02:57 +02:00
|
|
|
|
|
|
|
For development or running tests, get additional dependencies:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
sudo apt-get install -y asciidoc valgrind python3-pip
|
|
|
|
sudo pip3 install python-bitcoinlib
|
2016-08-13 03:09:32 +02:00
|
|
|
|
2017-01-11 00:12:26 +01:00
|
|
|
Clone lightning:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
git clone https://github.com/ElementsProject/lightning.git
|
|
|
|
cd lightning
|
2016-08-13 03:09:32 +02:00
|
|
|
|
|
|
|
Build lightning:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
make
|
2016-08-13 03:09:32 +02:00
|
|
|
|
|
|
|
Running lightning:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
bitcoind &
|
|
|
|
./lightningd/lightningd &
|
|
|
|
./cli/lightning-cli help
|
|
|
|
|
2016-08-13 03:09:32 +02:00
|
|
|
**Note**: You may need to include `testnet=1` in `bitcoin.conf`
|
|
|
|
|
2018-01-22 20:31:56 +01:00
|
|
|
To Build on FreeBSD 11.1-RELEASE
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Get dependencies:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
# pkg install -y \
|
|
|
|
autoconf automake git gmake libtool python python3 sqlite3
|
2018-01-22 20:31:56 +01:00
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
If you don't have Bitcoin installed locally you'll need to install that
|
|
|
|
as well:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
# pkg install -y bitcoin-daemon bitcoin-utils
|
2018-01-22 20:31:56 +01:00
|
|
|
|
|
|
|
Clone lightning:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
$ git clone https://github.com/ElementsProject/lightning.git
|
|
|
|
$ cd lightning
|
2018-01-22 20:31:56 +01:00
|
|
|
|
|
|
|
Build lightning:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
$ gmake
|
2018-01-22 20:31:56 +01:00
|
|
|
|
|
|
|
Running lightning:
|
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
**Note**: Edit your `/usr/local/etc/bitcoin.conf` to include
|
|
|
|
`rpcuser=<foo>` and `rpcpassword=<bar>` first, you may also need to
|
|
|
|
include `testnet=1`
|
2018-01-22 20:31:56 +01:00
|
|
|
|
2018-03-01 15:05:52 +01:00
|
|
|
# service bitcoind start
|
|
|
|
$ ./lightningd/lightningd &
|
|
|
|
$ ./cli/lightning-cli help
|
2018-01-22 23:45:00 +01:00
|
|
|
|
|
|
|
To Build on Nix{,OS}
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
Untested on MacOS/Windows/Other Linux. Works on NixOS.
|
|
|
|
|
|
|
|
Use nix-shell launch a shell with a full clightning dev environment:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ nix-shell -Q -p gdb sqlite autoconf git clang libtool gmp sqlite autoconf \
|
|
|
|
autogen automake 'python3.withPackages (p: [p.bitcoinlib])' \
|
|
|
|
valgrind asciidoc --run make
|
|
|
|
```
|
2018-02-26 12:48:57 +01:00
|
|
|
|
2018-02-26 13:33:35 +01:00
|
|
|
To cross-compile for Android
|
2018-02-26 12:48:57 +01:00
|
|
|
--------------------
|
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
Make a standalone toolchain as per
|
|
|
|
https://developer.android.com/ndk/guides/standalone_toolchain.html.
|
|
|
|
For c-lightning you must target an API level of 24 or higher.
|
2018-02-26 12:48:57 +01:00
|
|
|
|
2018-03-01 14:58:48 +01:00
|
|
|
Depending on your toolchain location and target arch, source env variables
|
|
|
|
such as:
|
2018-02-26 12:48:57 +01:00
|
|
|
|
2018-03-01 15:05:52 +01:00
|
|
|
export PATH=$PATH:/path/to/android/toolchain/bin
|
|
|
|
# Change next line depending on target device arch
|
|
|
|
target_host=arm-linux-androideabi
|
|
|
|
export AR=$target_host-ar
|
|
|
|
export AS=$target_host-clang
|
|
|
|
export CC=$target_host-clang
|
|
|
|
export CXX=$target_host-clang++
|
|
|
|
export LD=$target_host-ld
|
|
|
|
export STRIP=$target_host-strip
|
2018-03-01 14:58:48 +01:00
|
|
|
|
2018-02-26 12:48:57 +01:00
|
|
|
Two makefile targets should not be cross-compiled so we specify a native CC:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
make CC=clang clean ccan/tools/configurator/configurator
|
|
|
|
make clean -C ccan/ccan/cdump/tools \
|
|
|
|
&& make CC=clang -C ccan/ccan/cdump/tools
|
2018-03-01 14:58:48 +01:00
|
|
|
|
|
|
|
Install the `qemu-user` package.
|
|
|
|
This will allow you to properly configure
|
|
|
|
the build for the target device environment.
|
|
|
|
Build with:
|
2018-03-01 15:05:52 +01:00
|
|
|
|
|
|
|
BUILD=x86_64 HOST=arm-linux-androideabi \
|
|
|
|
make PIE=1 DEVELOPER=0 \
|
|
|
|
CONFIGURATOR_CC="arm-linux-androideabi-clang -static"
|