.NOTPARALLEL:

-include variables.mk

export RUST_LOG ?= info,cargo_tarpaulin=off
TEST_FEATURES ?= rsa
export PIV_DANGEROUS_TEST_CARD_READER ?= Virtual PCD 00 00
export PIV_DANGEROUS_TEST_CARD_PIV_SERIAL ?= 99 37 9A 79 9E DC 48 1E A5 3E 11 CF EF 74 47 62

.PHONY: build-cortex-m4
build-cortex-m4:
	cargo build --target thumbv7em-none-eabi

.PHONY: test
test:
	cargo test --features $(TEST_FEATURES)

.PHONY: dangerous-test-real-card
dangerous-test-real-card:
	DANGEROUS_TEST_RUN_REAL_CARD=true cargo test --features $(TEST_FEATURES)

.PHONY: check
check:
	RUSTLFAGS='-Dwarnings' cargo check --all-features --all-targets

.PHONY: lint
lint:
	cargo fmt --check
	cargo check --all-features --all-targets
	cargo clippy --all-targets --all-features -- -Dwarnings
	RUSTDOCFLAGS='-Dwarnings' cargo doc --all-features --no-deps
	
.PHONY: tarpaulin
tarpaulin:
	cargo tarpaulin --engine Llvm --features $(TEST_FEATURES) -o Html -o Xml

.PHONY: vpicc-example
vpicc-example:
	cargo run --example vpicc
	
.PHONY: ci
ci: lint test
	
