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 ?= 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 --release
clean:
rm -rf --one-file-system ./target
cov:
cargo llvm-cov test --release --text
fmt:
cargo fmt
lint:
cargo clippy
check:
cargo test --release -- --nocapture
fuzz:
cargo afl build --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
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