HOPE Software Toolchain
hope-src repository is a super-repository for the HOPE software
Cloning the Source
hope-src relies on git submodules, we recommend the following
[submodule] recurse = true [push] recurseSubmodules = on-demand [diff] submodule = log [status] submoduleSummary = true
Follow these steps to clone the repo and submodules:
- Clone hope-src (DO NOT USE
git clone https://github.com/draperlaboratory/hope-src.git
./init-submodules.sh. This will clone the submodules, excluding private repos.
If you have access to the private repos, run
Building the HOPE Toolchain
This is a step-by-step guide on how to build the HOPE software toolchain.
Setting Environment Variables
To set the necessary environment variables, run the following command:
ISP=/your/isp/build/ source ./tools/isp-support/set-env
ISP variable is specified, the default build location is
Currently, HOPE development is only supported on Ubuntu 18.04.
On Ubuntu 18.04 run the following to install the necessary software.
The software can be built using the Makefile provided in this repository. It is
recommend you run
make with the
-j# flag as this will instruct
perform a parallel build with a maximum of
# processes. A good
# is the number of CPUs you have which is returned by
Therefore you can run the following:
make -j `nproc`
Bare Metal Tests
make test-bare JOBS=auto
Note: JOBS allows for parallel test runs. You may specify the number of parallel jobs with
make test-frtos JOBS=auto
Steps to run your changes through Continuous Integration (CI):
- After updating all the individual repositories, create a new hope-src branch starting with "pr-".
- Bump the submodules in hope-src with your new repositories.
- Jenkins will watch for pr-* branches and set build status on hope-src as well as each individual repository.