BINARY := rypper
BUILDFLAGS := --release
TARGET_DIR := /usr/bin
VERSION=$(shell awk -F ' = ' '$$1 ~ /version/ { gsub(/["]/, "", $$2); printf("%s",$$2) }' Cargo.toml)

all: build

build:
	@cargo build $(BUILDFLAGS)
	@cp ./target/release/$(BINARY) ./bin/$(BINARY)

install: setup build
	@mkdir -p $(TARGET_DIR)
	@cp ./bin/$(BINARY) $(TARGET_DIR)
	@chmod +x $(TARGET_DIR)/$(BINARY)

uninstall:
	@rm $(TARGET_DIR)/$(BINARY)

check:
	@cargo fmt
	@cargo check --target=x86_64-unknown-linux-musl
	@cargo clippy

release: setup
	@rm Cargo.lock
	@$(MAKE) -s
	@cd bin; zip -r "glibc-x86_64-$(VERSION).zip" rypper; rm rypper

clean:
	@cargo clean

setup:
	@mkdir -p ./bin
	@rustup install stable
	@rustup default stable

.PHONY: check clean setup all install build release
