PYTHON ?= python
LLAMA_CPP_DIR ?= $(CURDIR)/llama.cpp
HF_SRC ?= $(CURDIR)/hf-src
OUT_DIR ?= $(CURDIR)/build/gguf-release
PIPELINE := $(PYTHON) ./scripts/build_padauk_gguf.py --llama-cpp-dir "$(LLAMA_CPP_DIR)" --hf-src "$(HF_SRC)" --out-dir "$(OUT_DIR)"
F16_GGUF := "$(OUT_DIR)/padauk-f16.gguf"
Q8_GGUF := "$(OUT_DIR)/padauk-gemma-q8_0.gguf"

.PHONY: preflight gguf-f16 validate-f16 gguf-q8_0 validate-q8_0 sha256 release-metadata gguf-release

preflight:
	$(PIPELINE) preflight

gguf-f16:
	$(PIPELINE) convert-f16

validate-f16:
	$(PIPELINE) validate-gguf --model $(F16_GGUF)

gguf-q8_0:
	$(PIPELINE) quantize-q8_0

validate-q8_0:
	$(PIPELINE) validate-gguf --model $(Q8_GGUF)

sha256:
	$(PIPELINE) write-sha256

release-metadata:
	$(PIPELINE) update-release-metadata

gguf-release: preflight gguf-f16 validate-f16 gguf-q8_0 validate-q8_0 sha256 release-metadata
