.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 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 = \ $(pastebins) \ $(lilypond) \ $(favicons) \ $(podcasts.ogg) \ $(torrents) \ TODOs.html \ all: public dynamic dynamic: generated.mk $(MAKE) -f dynamic.mk all JEKYLL_COMPAT: deps.mk files.mk sh src/development/JEKYLL_COMPAT/copy-content.sh generated.mk: ALWAYS JEKYLL_COMPAT sh src/development/dynmake.sh > $@ # NOOP rule to assert that the targets that depend on it are # always considered stale. ALWAYS: $(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) generated.mk $(MAKE) -f dynamic.mk torrents 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) \ torrent-files.txt files.mk deps.mk \ 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)'