@@ -8,17 +8,42 @@ help: ## Ask for help!
88build : # # Build the project in debug mode
99 cargo build
1010
11+ .PHONY : build-ledger
12+ build-ledger : download-circuits # # Build the ledger binary and library, requires nightly Rust
13+ @cd ledger && cargo +nightly build --release --tests
14+
1115.PHONY : build-release
1216build-release : # # Build the project in release mode
1317 cargo build --release --bin openmina
1418
15- .PHONY : build-tests
16- build-tests : # # Build test binaries
17- cargo build --release --tests --package=openmina-node-testing --package=cli
19+ .PHONY : build-tests-webrtc
20+ build-tests-webrtc : # # Build tests for WebRTC
21+ @mkdir -p target/release/tests
22+ @cargo build --release --tests \
23+ --package=openmina-node-testing \
24+ --package=cli
25+ @cargo build --release \
26+ --features=scenario-generators,p2p-webrtc \
27+ --package=openmina-node-testing \
28+ --tests \
29+ --message-format=json \
30+ > cargo-build-test.json
31+ @jq -r ' . | select(.executable != null and (.target.kind | (contains(["test"])))) | [.target.name, .executable ] | @tsv' cargo-build-test.json > tests.tsv
32+ @while read NAME FILE; do \
33+ cp -a $$ FILE target/release/tests/webrtc_$$ NAME; \
34+ done < tests.tsv
35+
36+ .PHONY : build-vrf
37+ build-vrf : # # Build the VRF package
38+ @cd vrf && cargo +nightly build --release --tests
1839
1940.PHONY : build-wasm
2041build-wasm : # # Build WebAssembly node
21- cd node/web && cargo +nightly build --release --target wasm32-unknown-unknown
42+ @cd node/web && cargo +nightly build \
43+ --release --target wasm32-unknown-unknown
44+ @wasm-bindgen --keep-debug --web \
45+ --out-dir pkg \
46+ target/wasm32-unknown-unknown/release/openmina_node_web.wasm
2247
2348.PHONY : check
2449check : # # Check code for compilation errors
@@ -42,6 +67,15 @@ check-md: ## Check if markdown files are properly formatted
4267clean : # # Clean build artifacts
4368 cargo clean
4469
70+ .PHONY : download-circuits
71+ download-circuits : # # Download the circuits used by Mina from GitHub
72+ @if [ ! -d " circuit-blobs" ]; then \
73+ git clone --depth 1 https://github.com/openmina/circuit-blobs.git; \
74+ ln -s -b " $$ PWD" /circuit-blobs/* ledger/; \
75+ else \
76+ echo " circuit-blobs already exists, skipping download." ; \
77+ fi
78+
4579.PHONY : format
4680format : # # Format code using rustfmt
4781 cargo +nightly fmt
@@ -61,8 +95,8 @@ test: ## Run tests
6195 cargo test
6296
6397.PHONY : test-ledger
64- test-ledger : # # Run ledger tests
65- cd ledger && cargo test --release
98+ test-ledger : build-ledger # # Run ledger tests in release mode, requires nightly Rust
99+ @ cd ledger && cargo +nightly test --release -- -Z unstable-options --report-time
66100
67101.PHONY : test-p2p
68102test-p2p : # # Run P2P tests
@@ -73,5 +107,5 @@ test-release: ## Run tests in release mode
73107 cargo test --release
74108
75109.PHONY : test-vrf
76- test-vrf : # # Run VRF tests
77- cd vrf && cargo test --release
110+ test-vrf : # # Run VRF tests, requires nightly Rust
111+ @ cd vrf && cargo +nightly test --release -- -Z unstable-options --report-time
0 commit comments