vet the Makefile (#165)

- Move the emscripten target flags into the target configuration.
- Improve the readability of the Makefile.

Signed-off-by: xermicus <cyrill@parity.io>
This commit is contained in:
Cyrill Leutwiler
2025-01-15 22:26:56 +01:00
committed by GitHub
parent 3e7579580b
commit 71fb3ab8d6
2 changed files with 47 additions and 26 deletions
+18
View File
@@ -0,0 +1,18 @@
[target.wasm32-unknown-emscripten]
rustflags = [
"-Clink-arg=-sEXPORTED_FUNCTIONS=_main,_free,_malloc",
"-Clink-arg=-sNO_INVOKE_RUN=1",
"-Clink-arg=-sEXIT_RUNTIME=1",
"-Clink-arg=-sALLOW_MEMORY_GROWTH=1",
"-Clink-arg=-sEXPORTED_RUNTIME_METHODS=FS,callMain,stringToNewUTF8",
"-Clink-arg=-sMODULARIZE=1",
"-Clink-arg=-sEXPORT_NAME=createRevive",
"-Clink-arg=-sWASM_ASYNC_COMPILATION=0",
"-Clink-arg=-sDYNAMIC_EXECUTION=0",
"-Clink-arg=-sALLOW_TABLE_GROWTH=1",
"-Clink-arg=--js-library=js/embed/soljson_interface.js",
"-Clink-arg=--pre-js=js/embed/pre.js",
"-Clink-arg=-sNODEJS_CATCH_EXIT=0",
"-Clink-arg=-sDISABLE_EXCEPTION_CATCHING=0",
"-Copt-level=3"
]
+29 -26
View File
@@ -1,21 +1,24 @@
.PHONY: install format test test-solidity test-cli test-integration test-workspace test-wasm clean install-llvm install-llvm-builder machete .PHONY: \
install \
RUSTFLAGS_EMSCRIPTEN := \ install-bin \
-C link-arg=-sEXPORTED_FUNCTIONS=_main,_free,_malloc \ install-npm \
-C link-arg=-sNO_INVOKE_RUN=1 \ install-wasm \
-C link-arg=-sEXIT_RUNTIME=1 \ install-llvm-builder \
-C link-arg=-sALLOW_MEMORY_GROWTH=1 \ install-llvm \
-C link-arg=-sEXPORTED_RUNTIME_METHODS=FS,callMain,stringToNewUTF8 \ format \
-C link-arg=-sMODULARIZE=1 \ clippy \
-C link-arg=-sEXPORT_NAME=createRevive \ machete \
-C link-arg=-sWASM_ASYNC_COMPILATION=0 \ test \
-C link-arg=-sDYNAMIC_EXECUTION=0 \ test-integration \
-C link-arg=-sALLOW_TABLE_GROWTH=1 \ test-solidity \
-C link-arg=--js-library=js/embed/soljson_interface.js \ test-workspace \
-C link-arg=--pre-js=js/embed/pre.js \ test-cli \
-C link-arg=-sNODEJS_CATCH_EXIT=0 \ test-wasm \
-C link-arg=-sDISABLE_EXCEPTION_CATCHING=0 \ test-llvm-builder
-C opt-level=3 bench \
bench-pvm \
bench-evm \
clean
install: install-bin install-npm install: install-bin install-npm
@@ -26,7 +29,7 @@ install-npm:
npm install && npm fund npm install && npm fund
install-wasm: install-npm install-wasm: install-npm
RUSTFLAGS='$(RUSTFLAGS_EMSCRIPTEN)' cargo build --target wasm32-unknown-emscripten -p revive-solidity --release --no-default-features cargo build --target wasm32-unknown-emscripten -p revive-solidity --release --no-default-features
install-llvm-builder: install-llvm-builder:
cargo install --path crates/llvm-builder cargo install --path crates/llvm-builder
@@ -35,9 +38,6 @@ install-llvm: install-llvm-builder
revive-llvm clone revive-llvm clone
revive-llvm build revive-llvm build
test-wasm: install-wasm
npm run test:wasm
format: format:
cargo fmt --all --check cargo fmt --all --check
@@ -62,10 +62,17 @@ test-workspace: install
test-cli: install test-cli: install
npm run test:cli npm run test:cli
test-wasm: install-wasm
npm run test:wasm
test-llvm-builder: test-llvm-builder:
@echo "warning: the llvm-builder tests will take many hours" @echo "warning: the llvm-builder tests will take many hours"
cargo test --package revive-llvm-builder -- --test-threads=1 cargo test --package revive-llvm-builder -- --test-threads=1
bench: install-bin
cargo criterion --all --all-features --message-format=json \
| criterion-table > crates/benchmarks/BENCHMARKS.md
bench-pvm: install-bin bench-pvm: install-bin
cargo criterion --bench execute --features bench-pvm-interpreter --message-format=json \ cargo criterion --bench execute --features bench-pvm-interpreter --message-format=json \
| criterion-table > crates/benchmarks/PVM.md | criterion-table > crates/benchmarks/PVM.md
@@ -74,10 +81,6 @@ bench-evm: install-bin
cargo criterion --bench execute --features bench-evm --message-format=json \ cargo criterion --bench execute --features bench-evm --message-format=json \
| criterion-table > crates/benchmarks/EVM.md | criterion-table > crates/benchmarks/EVM.md
bench: install-bin
cargo criterion --all --all-features --message-format=json \
| criterion-table > crates/benchmarks/BENCHMARKS.md
clean: clean:
cargo clean ; \ cargo clean ; \
revive-llvm clean ; \ revive-llvm clean ; \