all: readme readme: README.md README.md: README.tpl src/lib.rs cargo readme > $@ test: cargo test --offline test-no-default-features: cargo test --offline --no-default-features miri: cargo +nightly miri test --offline clean: @cargo clean @rm -f z.* *.log *.tmp clippy: cargo clippy --offline --tests --workspace fmt: cargo fmt doc: cargo doc --features dox tarpaulin: cargo tarpaulin --offline --engine llvm --out html --output-dir ./target example_curl_gen = examples/curl.cmd.match.rs.txt examples/curl.cmd.help.rs.txt gen: $(example_curl_gen) gen-clean: rm -f $(example_curl_gen) examples/curl.cmd.match.rs.txt: examples/curl.cmd.txt cargo xtask gen-src-example-curl-cmd examples/curl.cmd.help.rs.txt: examples/curl.cmd.txt cargo xtask gen-src-example-curl-cmd bench: cargo xbench --bench=bench-curl rustc_vers = 1.56.1 1.57.0 1.58.1 1.59.0 1.60.0 1.61.0 1.62.1 1.63.0 \ 1.64.0 1.65.0 1.66.1 target_base = x86_64-unknown-linux-gnu i586-unknown-linux-gnu define test-rustc-templ = target/stamp/stamp.test-rustc.$(1).$(2): @mkdir -p target/stamp cargo +$(1) test --target=$(2) @touch target/stamp/stamp.test-rustc.$(1).$(2) endef empty:= space:=$(empty) $(empty) comma:=, features = was_long single_error abbreviate subcommand long_only include features_comb.mk define template = target/z.test/z.test-$(1).log: src/lib.rs time cargo test --no-default-features --features $(2) > z.test-$(1).tmp @mkdir -p target/z.test @cat z.test-$(1).tmp > target/z.test/z.test-$(1).log @grep -e "^test result:" z.test-$(1).tmp | grep -v -e " 0 passed" >> target/z.test/z.test-$(1).log @rm -f z.test-$(1).tmp @echo endef $(foreach log,$(features_comb),$(eval LOGS=$(LOGS) target/z.test/z.test-$(log).log)) $(foreach log,$(features_comb),$(eval $(call template,$(log),$(subst +,$(comma),$(log))))) test-all-features: $(LOGS) test-all-version: $(foreach ver,$(rustc_vers),$(foreach tb,$(target_base),target/stamp/stamp.test-rustc.$(ver).$(tb))) test-all-version-clean: @rm -fr target/stamp $(foreach ver,$(rustc_vers),$(eval $(foreach tb,$(target_base),$(eval $(call test-rustc-templ,$(ver),$(tb))))))