lnd.xprv/docs/MAKEFILE.md
2019-11-06 09:47:48 +01:00

4.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 and lncli.
  • Compilation and installation of btcd and btcctl.
  • Running unit and integration suites.
  • Testing, debugging, and flake hunting.
  • Formatting and linting.

Commands

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.

Related: unit itest

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>

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 be info (default), debug, trace, warn, error, critical, or off

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 be info (default), debug, trace, warn, error, critical, or off

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 be info (default), debug, trace, warn, error, critical, or off

Related: unit