In most cases, make deps should be able to install all dependencies:
make deps
Building
There are different local builds:
Generic C++ code and run unit tests
BOLOS firmware
Generic C++ Code / Tests
This is useful when you want to make changes to libraries, run unit tests, etc. It will build all common libraries and unit tests.
Compile
cmake . && make
In Case Above Command didn't work, use the command given below. It will compile local code but it will not try to cross compile the apps. Typically this is more efficient too.
cmake -DDISABLE_DOCKER_BUILDS=ON . && make
Run unit tests
export GTEST_ANTLIA=1 && ctest -VV
BOLOS / Ledger firmware
In order to keep builds reproducible, a Makefile is provided.
The Makefile will build the firmware in a docker container and leave the binary in the correct directory.
Build
The following command will build the app firmware inside a container. All output will be available to the host.
make # Builds both Antlia and Tendermint apps
Upload the app to the device
The following command will upload the application to the ledger. Warning: The application will be deleted before uploading.
make load_antlia # Loads Antlias app (for users)
make load_tendermint # Loads Tendermint app (for validators)
Continuous Integration (Debugging CI Issues)
This will build in a docker image identical to what CircleCI uses. This provides a clean, reproducible environment. It also can be helpful to debug CI issues.