carbon14 0.3.0

file-system forensics
Documentation
INSTALL_PATH		:=$(HOME)/opt/libexec
CARBON14_NAME		:=carbon14
CARBON14_VERSION	:=$(shell cargo run -- --version | awk '{ print $$NF }')
CARBON14_DEBUG_EXEC	:=target/debug/$(CARBON14_NAME)
CARBON14_RELEASE_EXEC	:=target/release/$(CARBON14_NAME)
CARBON14_EXEC		:=$(CARBON14_DEBUG_EXEC)
CARBON14_RUN		:=$(CARBON14_DEBUG_EXEC)
CARBON14_RUN		:=cargo run --bin $(CARBON14_NAME) --

all: test debug release

$(INSTALL_PATH):
	mkdir -p $@

$(CARBON14_RELEASE_EXEC): $(INSTALL_PATH)
	cargo build --release

$(CARBON14_DEBUG_EXEC): $(INSTALL_PATH)
	cargo build

release: check fix | $(CARBON14_RELEASE_EXEC)
	install $(CARBON14_RELEASE_EXEC) $(INSTALL_PATH)/$(CARBON14_NAME)-$(CARBON14_VERSION)
	install $(CARBON14_RELEASE_EXEC) $(INSTALL_PATH)

debug: check fix | $(CARBON14_DEBUG_EXEC)
	install $(CARBON14_DEBUG_EXEC) $(INSTALL_PATH)/$(CARBON14_NAME)-$(CARBON14_VERSION)
	install $(CARBON14_DEBUG_EXEC) $(INSTALL_PATH)

clean: cls
	@rm -rf target

cleanx:
	@rm -rf $(CARBON14_DEBUG_EXEC)
	@rm -rf $(CARBON14_RELEASE_EXEC)

cls:
	-@reset || tput reset

fix:
	cargo fix

fmt:
	rustfmt --edition 2021 src/*.rs

check:
	cargo check --all-targets

test: build
	cargo run -- Cargo.toml README.md

build: check
	cargo $@

run: cleanx $(CARBON14_DEBUG_EXEC)
	$(CARBON14_RUN) -o target/debug/checksums.yaml target/debug/*
	$(CARBON14_RUN) -o target/checksums.yaml target


.PHONY: all clean cls release debug fix fmt check build test