.POSIX: .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/favicon.png favicon.ico podcasts.flac = \ resources/podcasts/2020-12-19-a-test-entry.flac podcasts.ogg = $(podcasts.flac:.flac=.ogg) screencasts.webm = \ resources/screencasts/2021-02-07-autoqemu-automate-installation-and-ssh-setup-of-iso-os-images.webm torrents-in = \ $(podcasts.flac) \ $(podcasts.ogg) \ $(screencasts.webm) torrents = $(torrents-in:=.torrent) derived-assets = \ $(lilypond) \ $(favicons) \ $(podcasts.ogg) \ $(torrents) all: public $(lilypond.pdf): $(lilypond.midi) torrent-files.txt: $(torrents-in) echo $(torrents-in) | tr ' ' '\n' > $@ files.mk: torrent-files.txt printf '' > $@ printf 'torrent-files = \\\n' >> $@ sed -e 's/^/\t/' -e 's/$$/.torrent \\/' < torrent-files.txt >> $@ printf '\n\n' >> $@ deps.mk: torrent-files.txt printf '' > $@ awk '{ printf "%s.torrent: %s\n", $$1, $$1 }' torrent-files.txt >> $@ $(torrents): files.mk deps.mk $(MAKE) -f dynamic.mk torrents static/favicon.png: static/favicon.svg inkscape -o $@ -w 2048 -h 2048 -b white static/favicon.svg favicon.ico: static/favicon.svg convert static/favicon.svg $@ 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) \ torrent-files.txt files.mk deps.mk JEKYLL = JEKYLL_ENV=production jekyll public: $(derived-assets) $(JEKYLL) build run: all open 'http://localhost:4000' $(JEKYLL) serve deploy: all rsync -avzP public/ euandre.org:/home/user-data/www/default/ --delete