diff --git a/Makefile b/Makefile index be9e14027..2fd5f8811 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,8 @@ endif ########## ## Main ## ########## +# The Makefile automatically bootstraps dependency setup when needed for build and test targets. +# `make update` is an explicit refresh target and is not required manually for normal builds. .PHONY: all test update clean examples deps nimble install-nim install-nimble # default target @@ -77,6 +79,8 @@ $(NIMBLEDEPS_STAMP): nimble.lock | waku.nims $(MAKE) rebuild-nat-libs-nimbledeps touch $@ +# `update` refreshes the local dependency stamp and lockfile. +# Most targets already depend on $(NIMBLEDEPS_STAMP) and will update automatically as needed. update: rm -f $(NIMBLEDEPS_STAMP) $(MAKE) $(NIMBLEDEPS_STAMP) diff --git a/README.md b/README.md index 8833ae131..6c542324d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,13 @@ The standard developer tools, including a C compiler, GNU Make, Bash, and Git. M You'll also need an installation of Rust and its toolchain (specifically `rustc` and `cargo`). The easiest way to install these, is using `rustup`: +Supported toolchain versions: +- Nim 2.2.4 +- Nimble 0.22.3 + +These versions are enforced by the repository configuration and the Makefile. + +Rust: ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` @@ -33,8 +40,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ### Wakunode ```bash -# The first `make` invocation will update all Git submodules. -# You'll run `make update` after each `git pull` in the future to keep those submodules updated. +# The first `make` invocation will initialize the local dependency state. make wakunode2 # Build with custom compilation flags. Do not use NIM_PARAMS unless you know what you are doing.