PREFIX ?= $(HOME)/.local
BINDIR ?= $(PREFIX)/bin
PROG ?= video2srt
PYTHON ?= python3
VENV ?= .venv
BACKEND ?= rocm

PIP := $(VENV)/bin/pip

ifeq ($(BACKEND),rocm)
TORCH_INDEX := --index-url https://download.pytorch.org/whl/rocm6.3
else ifeq ($(BACKEND),cuda)
TORCH_INDEX := --index-url https://download.pytorch.org/whl/cu124
else ifeq ($(BACKEND),cpu)
TORCH_INDEX :=
else
$(error Unknown BACKEND=$(BACKEND), expected: rocm | cuda | cpu)
endif

.PHONY: build install clean uninstall

build: $(VENV)/.installed

$(VENV)/.torch-$(BACKEND): | $(VENV)
	$(PIP) install torch torchaudio $(TORCH_INDEX)
	touch $@

$(VENV)/.installed: pyproject.toml $(VENV)/.torch-$(BACKEND)
	$(PIP) install -e .
ifeq ($(BACKEND),rocm)
	$(PIP) uninstall -y triton || true
	$(PIP) install --force-reinstall --no-deps pytorch-triton-rocm $(TORCH_INDEX)
endif
	touch $@

$(VENV):
	$(PYTHON) -m venv $(VENV)

$(BINDIR)/$(PROG): $(VENV)/.installed
	install -D -m 755 $(VENV)/bin/$(PROG) $@

install: $(BINDIR)/$(PROG)

clean:
	rm -rf $(VENV)

uninstall:
	rm -f $(BINDIR)/$(PROG)
