1 # GNUmakefile --- GNU Makefile for building my personal site
3 # Copyright (c) 2020-2021 bandali
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.
11 gen
= perl txt2pre
$(1) < $< > $@
12 port
:= $(if
$(port
),$(port
),8000)
14 TXT
:= $(filter-out bandali-pubkey.txt bandali.txt
,$(wildcard *.txt
))
15 OUT
:= $(patsubst %.txt
,%.html
,$(TXT
))
16 OUT
:= $(patsubst bandali-
%.html
,%.html
,$(OUT
))
17 FEEDS
:= notes.atom notes.rss
19 libreplanet-2021.txt
$\
20 fsf-internship-beyond.txt
$\
21 fsf-internship-intro.txt
$\
22 bandali-computing.txt
$\
24 TXT_FA
:= $(filter-out fa
/bandali.fa.txt
,$(wildcard fa
/*.fa.txt
))
25 OUT_FA
:= $(patsubst fa
/%.fa.txt
,fa
/%.html
,$(TXT_FA
))
26 OUT_FA
:= $(patsubst fa
/bandali-
%.html
,fa
/%.html
,$(OUT_FA
))
27 FEEDS_FA
:= fa
/notes.atom fa
/notes.rss
29 fa
/fsf-internship-beyond.fa.txt
$\
30 fa
/fsf-internship-intro.fa.txt
$\
31 fa
/bandali-computing.fa.txt
$\
33 all: $(OUT
) $(FEEDS
) index.html
$(OUT_FA
) $(FEEDS_FA
) fa
/index.html
35 %.html
: bandali-
%.txt txt2pre
; $(gen
)
36 %.html
: %.txt txt2pre
; $(gen
)
37 index.html
: bandali.txt txt2pre
; $(call gen
,--index
)
38 notes.
%: $(NOTES
) txt2pre
39 perl txt2pre
--index
--header
--format
='$*' > $@
40 for n in
$(NOTES
); do perl txt2pre
--format
='$*' < "$$n" >> $@
; done
41 perl txt2pre
--index
--footer
--format
='$*' >> $@
43 fa
/%.html
: fa
/bandali-
%.fa.txt txt2pre
; $(call gen
,--lang
='fa')
44 fa
/%.html
: fa
/%.fa.txt txt2pre
; $(call gen
,--lang
='fa')
45 fa
/index.html
: fa
/bandali.fa.txt txt2pre
; $(call gen
,--lang
='fa' --index
)
46 fa
/notes.
%: $(NOTES_FA
) txt2pre
47 perl txt2pre
--lang
='fa' --index
--header
--format
='$*' > $@
48 for n in
$(NOTES_FA
); do perl txt2pre
--lang
='fa' --format
='$*' < "$$n" >> $@
; done
49 perl txt2pre
--lang
='fa' --index
--footer
--format
='$*' >> $@
53 rm -f
$(OUT
) $(OUT_FA
) index.html fa
/index.html
56 python
-m http.server
$(port
) || python
-m SimpleHTTPServer
$(port
)
60 echo
$(TXT
) $(TXT_FA
) bandali.txt fa
/bandali.fa.txt \
61 GNUmakefile txt2pre | tr
" " "\n" | entr
-d make
; done
63 .PHONY
: all clean serve watch