txt2html: use Getopt::Long for saner command line arg handling
[~bandali/bndl.org] / GNUmakefile
... / ...
CommitLineData
1# GNUmakefile --- GNU Makefile for building my personal site
2
3# Copyright (c) 2020-2021 bandali
4#
5# Copying and distribution of this file, with or without modification,
6# are permitted in any medium without royalty provided the copyright
7# notice and this notice are preserved. This file is offered as-is,
8# without any warranty.
9
10
11gen = perl txt2html < $< > $@
12gen_fa = perl txt2html --lang='fa' < $< > $@
13port := $(if $(port),$(port),8000)
14
15TXT := $(filter-out bandali-pubkey.txt bandali.txt,$(wildcard *.txt))
16OUT := $(patsubst %.txt,%.html,$(TXT))
17OUT := $(patsubst bandali-%.html,%.html,$(OUT))
18
19TXT_FA := $(filter-out fa/bandali.fa.txt,$(wildcard fa/*.fa.txt))
20OUT_FA := $(patsubst fa/%.fa.txt,fa/%.html,$(TXT_FA))
21OUT_FA := $(patsubst fa/bandali-%.html,fa/%.html,$(OUT_FA))
22
23all: $(OUT) $(OUT_FA) index.html fa/index.html
24
25%.html: bandali-%.txt ; $(gen)
26%.html: %.txt ; $(gen)
27index.html: bandali.txt ; $(gen)
28
29fa/%.html: fa/bandali-%.fa.txt ; $(gen_fa)
30fa/%.html: fa/%.fa.txt ; $(gen_fa)
31fa/index.html: fa/bandali.fa.txt ; $(gen_fa)
32
33
34clean:
35 rm -f $(OUT) $(OUT_FA) index.html fa/index.html
36
37serve:
38 python -m http.server $(port) || python -m SimpleHTTPServer $(port)
39
40watch:
41 while true; do \
42 echo $(TXT) $(TXT_FA) bandali.txt fa/bandali.fa.txt \
43 GNUmakefile txt2html | tr " " "\n" | entr -d make; done
44
45.PHONY: all clean serve watch