# GNUmakefile --- GNU Makefile for building my personal site # Copyright (c) 2020-2021 bandali # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. This file is offered as-is, # without any warranty. gen-html = perl txt2pre $(1) < $< > $@ port := $(if $(port),$(port),8000) TXT := $(filter-out bandali-pubkey.txt bandali.txt,$(wildcard *.txt)) OUT := $(patsubst %.txt,%.html,$(TXT)) OUT := $(patsubst bandali-%.html,%.html,$(OUT)) TXT_FA := $(filter-out fa/bandali.fa.txt,$(wildcard fa/*.fa.txt)) OUT_FA := $(patsubst fa/%.fa.txt,fa/%.html,$(TXT_FA)) OUT_FA := $(patsubst fa/bandali-%.html,fa/%.html,$(OUT_FA)) all: $(OUT) $(OUT_FA) index.html fa/index.html %.html: bandali-%.txt; $(gen-html) %.html: %.txt; $(gen-html) index.html: bandali.txt; $(call gen-html,--index) fa/%.html: fa/bandali-%.fa.txt; $(call gen-html,--lang='fa') fa/%.html: fa/%.fa.txt; $(call gen-html,--lang='fa') fa/index.html: fa/bandali.fa.txt; $(call gen-html,--lang='fa' --index) clean: rm -f $(OUT) $(OUT_FA) index.html fa/index.html serve: python -m http.server $(port) || python -m SimpleHTTPServer $(port) watch: while true; do \ echo $(TXT) $(TXT_FA) bandali.txt fa/bandali.fa.txt \ GNUmakefile txt2pre | tr " " "\n" | entr -d make; done .PHONY: all clean serve watch