RUSTARGET := $(shell rustc --print=host-tuple)
RUSTFLAGS := -g -Ctarget-feature=+crt-static
export RUSTFLAGS
CODESPELL ?= codespell
CODESPELL_IGNORES ?= .codespellignore
CODESPELL_IGNORE_FLAG := $(if $(wildcard $(CODESPELL_IGNORES)),-I $(CODESPELL_IGNORES),)
CODESPELL_BUILTINS ?= clear,rare,code,names
CODESPELL_PATHS ?= lib src tests Cargo.toml Makefile README.md
CODESPELL_SKIP ?= ,.git,./.git/*,target,*.1,*.2,*.5,*.7,*~,*.orig,*.txt,*.lock,*.png,*.jpg,*.jpeg,*.gif,*.svg,*.pdf,*.zip,*.tar,*.gz,*.tgz,*.xz,*.wasm,*.map,*.min.js,*.woff,*.woff2
CODESPELL_ARGS := --builtin $(CODESPELL_BUILTINS) -S "$(CODESPELL_SKIP)" $(CODESPELL_IGNORE_FLAG) -q 3 -s -f -H
all: build
build:
cargo build --target=$(RUSTARGET) --locked --release --workspace
clean:
rm -rf --one-file-system ./target
cov:
cargo llvm-cov test --release --workspace --html
-sudo rsync -a --delete /home/alip/signify/target/llvm-cov/html/ /usr/share/nginx/html/cov/signify/
-sudo find /usr/share/nginx/html/cov/signify/ -type d -exec chmod 755 '{}' '+'
-sudo find /usr/share/nginx/html/cov/signify/ -type f -exec chmod 644 '{}' '+'
fmt:
cargo fmt --all
lint:
cargo clippy --target=$(RUSTARGET) --workspace
check:
cargo test --target=$(RUSTARGET) --release --workspace -- --nocapture
fuzz:
cargo afl build --target=$(RUSTARGET) --release --features fuzz --example fuzz_parse
mkdir -p target/afl_in target/afl_out
echo "untrusted comment: test" > target/afl_in/seed
cargo afl fuzz -i target/afl_in -o target/afl_out target/release/examples/fuzz_parse
wasm:
cargo build --release --workspace --target=wasm32-wasip1
wasm64:
cargo build --release --workspace --target=wasm64-unknown-unknown
checkwasm:
CARGO_TARGET_WASM32_WASIP1_RUNNER="wasmtime run --dir=. --env TMPDIR=. --env PROPTEST_DISABLE_FAILURE_PERSISTENCE=1" \
cargo test -p libsignify-rs --lib --release --target=wasm32-wasip1
checkwasm64:
CARGO_TARGET_WASM64_UNKNOWN_UNKNOWN_RUNNER="wasmtime run --dir=. --env TMPDIR=. --env PROPTEST_DISABLE_FAILURE_PERSISTENCE=1 -W memory64" \
cargo test -p libsignify-rs --lib --release --target=wasm64-unknown-unknown
spell:
$(CODESPELL) $(CODESPELL_ARGS) --count $(CODESPELL_PATHS)
spell-fix:
$(CODESPELL) $(CODESPELL_ARGS) -w -i 3 $(CODESPELL_PATHS)
.PHONY: all build clean cov fmt lint check
.PHONY: fuzz spell spell-fix
.PHONY: wasm wasm64 checkwasm checkwasm64