.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)'