5.5 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 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
lndandlncli. - Compilation and installation of
btcdandbtcctl. - Running unit and integration suites.
- Testing, debugging, and flake hunting.
- Formatting and linting.
Commands
allbtcdbuildcheckcleandefaultdepflake-unitflakehunterfmtinstallitestlintlistrpcscratchtravisunitunit-coverunit-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 integration 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.
sample-conf-check
Checks whether all required options of lnd --help are included in sample-lnd.conf and that the default values of lnd --help are also mentioned correctly.
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 statistics 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