5.3 KiB
Makefile
To build, verify, and install lnd
from source, use the following
commands:
⛰ make
⛰ make check
⛰ make install
The command make check
requires bitcoind
(almost any version should do) to
be available in the system's $PATH
variable. Otherwise some of the tests will
fail.
Developers
This document specifies all commands available from lnd
's Makefile
.
The commands included handle:
- Installation of all go-related dependencies.
- Compilation and installation of
lnd
andlncli
. - Compilation and installation of
btcd
andbtcctl
. - Running unit and integration suites.
- Testing, debugging, and flake hunting.
- Formatting and linting.
Commands
all
btcd
build
check
clean
default
dep
flake-unit
flakehunter
fmt
install
itest
lint
list
rpc
scratch
travis
unit
unit-cover
unit-race
all
Compiles, tests, and installs lnd
and lncli
. Equivalent to
scratch
check
install
.
btcd
Ensures that the github.com/btcsuite/btcd
repository is checked out
locally. Lastly, installs the version of
github.com/btcsuite/btcd
specified in Gopkg.toml
build
Compiles the current source and vendor trees, creating ./lnd
and
./lncli
.
check
Installs the version of github.com/btcsuite/btcd
specified
in Gopkg.toml
, then runs the unit tests followed by the integration
tests.
clean
Removes compiled versions of both ./lnd
and ./lncli
, and removes the
vendor
tree.
default
Alias for scratch
.
flake-unit
Runs the unit test endlessly until a failure is detected.
Arguments:
pkg=<package>
case=<testcase>
timeout=<timeout>
Related: unit
flakehunter
Runs the itegration test suite endlessly until a failure is detected.
Arguments:
icase=<itestcase>
timeout=<timeout>
Related: itest
fmt
Runs go fmt
on the entire project.
install
Copies the compiled lnd
and lncli
binaries into $GOPATH/bin
.
itest
Installs the version of github.com/btcsuite/btcd
specified in
Gopkg.toml
, builds the ./lnd
and ./lncli
binaries, then runs the
integration test suite.
Arguments:
icase=<itestcase>
(the snake_case version of the testcase name field in the testCases slice (i.e. sweep_coins), not the test func name)timeout=<timeout>
itest-parallel
Does the same as itest
but splits the total set of tests into
NUM_ITEST_TRANCHES
tranches (currently set to 6 by default, can be overwritten
by setting tranches=Y
) and runs them in parallel.
Arguments:
icase=<itestcase>
: The snake_case version of the testcase name field in the testCases slice (i.e.sweep_coins
, not the test func name) or any regular expression describing a set of tests.timeout=<timeout>
tranches=<number_of_tranches>
: The number of parts/tranches to split the total set of tests into.parallel=<number_of_threads>
: The number of threads to run in parallel. Must be greater or equal totranches
, otherwise undefined behavior is expected.
flakehunter-parallel
Runs the test specified by icase
simultaneously parallel
(default=6) times
until an error occurs. Useful for hunting flakes.
Example:
⛰ make flakehunter-parallel icase='(data_loss_protection|channel_backup)' backend=neutrino
lint
Ensures that gopkg.in/alecthomas/gometalinter.v1
is
installed, then lints the project.
list
Lists all known make targets.
rpc
Compiles the lnrpc
proto files.
scratch
Compiles all dependencies and builds the ./lnd
and ./lncli
binaries.
Equivalent to lint
btcd
unit-race
.
unit
Runs the unit test suite. By default, this will run all known unit tests.
Arguments:
pkg=<package>
case=<testcase>
timeout=<timeout>
log="stdlog[ <log-level>]"
prints logs to stdout<log-level>
can beinfo
(default),debug
,trace
,warn
,error
,critical
, oroff
unit-cover
Runs the unit test suite with test coverage, compiling the statisitics in
profile.cov
.
Arguments:
pkg=<package>
case=<testcase>
timeout=<timeout>
log="stdlog[ <log-level>]"
prints logs to stdout<log-level>
can beinfo
(default),debug
,trace
,warn
,error
,critical
, oroff
Related: unit
unit-race
Runs the unit test suite with go's race detector.
Arguments:
pkg=<package>
case=<testcase>
timeout=<timeout>
log="stdlog[ <log-level>]"
prints logs to stdout<log-level>
can beinfo
(default),debug
,trace
,warn
,error
,critical
, oroff
Related: unit