aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 9624c5612fbd519b477bcfa79d699c8d79bc0091 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
.POSIX:
FQDN = euandre.org

.SUFFIXES:
.SUFFIXES: .ly .flac .midi .ogg .pdf

.ly.midi:
	lilypond -o $* $<

.midi.ogg:
	timidity -Ov $<

.flac.ogg:
	ffmpeg -y -i $< -ar 48000 -vn -c:a libvorbis -b:a 320k $@


lilypond.ly = \
	music/choro-da-saudade.ly \
	music/dengoso.ly          \
	music/marcha-dos-marinheiros.ly
lilypond.pdf  = $(lilypond.ly:.ly=.pdf)
lilypond.midi = $(lilypond.ly:.ly=.midi)
lilypond.ogg  = $(lilypond.midi:.midi=.ogg)
lilypond = \
	$(lilypond.pdf)  \
	$(lilypond.midi) \
	$(lilypond.ogg)

favicons = static/lord-favicon.png static/lord-favicon.ico favicon.ico

derived-assets = \
	$(pastebins)    \
	$(lilypond)     \
	$(favicons)     \
	$(podcasts.ogg) \
	TODOs.html      \



all: public dynamic

dynamic: generated.mk
	$(MAKE) -f dynamic.mk all

generated.mk: ALWAYS JEKYLL_COMPAT
	sh src/development/dynmake.sh > $@

JEKYLL_COMPAT:
	sh src/development/JEKYLL_COMPAT/copy-content.sh

# NOOP rule to assert that the targets that depend on it are
# always considered stale.
ALWAYS:

$(lilypond.pdf): $(lilypond.midi)

static/lord-favicon.png: static/lord-favicon.svg
	inkscape -o $@ -w 2048 -h 2048 -b white static/lord-favicon.svg

static/lord-favicon.ico: static/lord-favicon.svg
	convert static/lord-favicon.svg $@

favicon.ico: static/lord-favicon.ico
	ln -fs static/lord-favicon.ico $@

TODOs.html: TODOs.md
	sh aux/workflow/TODOs.sh -n website -m public-inbox -o .




check:
	sh aux/assert-shellcheck.sh
	sh aux/workflow/assert-todos.sh
	sh scripts/assert-spelling.sh
	sh scripts/extract-translations.sh
	sh scripts/apply-translations.sh

dev-check: check

clean:
	rm -rf \
		public/ .jekyll-cache \
		$(derived-assets) \
		src/content/ generated.mk \


JEKYLL = JEKYLL_ENV=production jekyll
public: $(derived-assets)
	$(JEKYLL) build

run: all
	open 'http://localhost:4000'
	$(JEKYLL) serve

deploy: all
	rm -rf public
	$(MAKE) public
	rsync -avzP public/ $(FQDN):/home/user-data/www/default/ --delete

fqdn:
	printf '$(FQDN)'