all: lint build html release


test: build
	@clear
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo test --no-default-features --all-features

lint:
	@clear
	@echo Linting features: \(None\)
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features
	@echo Linting features: sm3
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm3
	@echo Linting features: insecure_md5
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features insecure_md5
	@echo Linting features: insecure_sha1
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features insecure_sha1
	@echo Linting features: sha2
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sha2
	@echo Linting features: hmac_sm3
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features hmac,sm3
	@echo Linting features: hmac_insecure_md5
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features hmac,insecure_md5
	@echo Linting features: hmac_insecure_sha1
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features hmac,insecure_sha1
	@echo Linting features: hmac_sha2
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features hmac,sha2
	@echo Linting features: sm4
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm4
	@echo Linting features: sm4,ecb
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm4,ecb
	@echo Linting features: sm4,cbc
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm4,cbc
	@echo Linting features: sm4,cfb
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm4,cfb
	@echo Linting features: sm4,ofb
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clippy --no-default-features --features sm4,ofb

build:
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --no-default-features --all-features

release:
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build --release --no-default-features

publish:
	@clear
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo publish --registry crates-io

html:
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo doc --no-deps --no-default-features --all-features

clean:
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo clean

update:
	@CARGO_NET_GIT_FETCH_WITH_CLI=true cargo update
