.PHONY: help

VENV_NAME?=env
PYTHON=${VENV_NAME}/bin/python3
LINT_FILES=tts.py

.DEFAULT: help
help:
	@echo "make env"
	@echo "       creates and prepares the environment"
	@echo "make tts"
	@echo "       runs text-to-speech synthesis"
	@echo "make lint"
	@echo "       runs pylint"
	@echo "make clean"
	@echo "       cleans the development environment"

env: $(VENV_NAME)/bin/activate
$(VENV_NAME)/bin/activate:
	test -d $(VENV_NAME) || python3 -m venv $(VENV_NAME)
	${PYTHON} -m pip install -U pip
	${PYTHON} -m pip install fairseq
	${PYTHON} -m pip install scipy
	${PYTHON} -m pip install IPython
	${PYTHON} -m pip install huggingface_hub
	${PYTHON} -m pip install tensorboardX
	${PYTHON} -m pip install g2p_en
	touch $(VENV_NAME)/bin/activate

tts: env
	${PYTHON} tts.py --input=input.txt --output=output.wav; afplay output.wav

lint: env
	${PYTHON} -m pylint --rcfile=pylintrc $(LINT_FILES)

clean:
	rm -rf $(VENV_NAME)
	rm -rf output.wav
