-include include.mk # pelican variables P_OUTPUT?=output P_OPT?= # deploy variables D_BIN?=rsync D_OPT?=-avz --delete D_DST?="blog:$(D_FOLDER)" # venv variables VENV_SOURCE?=.venv REQUIREMENT?=requirements.txt PYTHON_BIN?=python3 VENV_CMD?=. $(VENV_SOURCE)/bin/activate # Pelican part .PHONY: build build: $(VENV_SOURCE)/dep $(VENV_CMD) && pelican -o $(P_OUTPUT) $(P_OPT) .PHONY: deploy deploy: build [ -d $(P_OUTPUT) ] && $(D_BIN) $(D_OPT) $(P_OUTPUT)/ $(D_DST) .PHONY: clean clean: [ -d $(P_OUTPUT) ] && rm -rf $(P_OUTPUT) # venv management $(VENV_SOURCE): $(PYTHON_BIN) -m venv $(VENV_SOURCE) $(REQUIREMENT): $(VENV_SOURCE)/dep: $(VENV_SOURCE) $(REQUIREMENT) touch $(VENV_SOURCE)/dep $(VENV_CMD) && pip install -r $(REQUIREMENT) .PHONY: clean-venv clean-venv: [ -d $(VENV_SOURCE) ] && rm -rf $(VENV_SOURCE) .PHONY: serve serve: $(VENV_SOURCE)/dep $(VENV_CMD) && invoke livereload