signify-rs 0.1.3

OpenBSD-compatible file signing & verification tool
# signify-rs's Makefile
# Copyright (c) 2025, 2026 Ali Polatel <alip@chesswob.org>
# SPDX-License-Identifier: ISC

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