diff options
Diffstat (limited to 'book/GNUmakefile')
-rw-r--r-- | book/GNUmakefile | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/book/GNUmakefile b/book/GNUmakefile new file mode 100644 index 00000000..ab753255 --- /dev/null +++ b/book/GNUmakefile @@ -0,0 +1,47 @@ + +noop = +space = $(noop) $(noop) +comma = , +langs = $(patsubst locale/%.ini,%,$(wildcard locale/*.ini)) + +s_pages = 01,02,03,04,05,06,07,08,09,10,11 +s_langs = $(subst $(space),$(comma),$(langs)) +png_pages = $(shell echo out/book_{$(s_pages)}.{$(s_langs)}.png) +webp_pages = $(shell echo out/book_{$(s_pages)}.{$(s_langs)}.webp) +svg_pages = $(shell echo out/book_{$(s_pages)}.{$(s_langs)}.svg) +pdfs = $(shell echo out/book.{$(s_langs)}.pdf) + +ALL = out/book.webp.tar.zst out/book.svg.tar.zst \ + $(pdfs) $(png_pages) $(webp_pages) $(svg_pages) + +JSR = deno run + +.PHONY: all +all: $(ALL) + +out: + @mkdir -p out + +book.json: book.js + DENO_NO_UPDATE_CHECK=1 $(JSR) $< > $@ + +out/book_01.%.png: book.typ book.json locale/%.ini out + typst compile --input lang=$(subst out/,,$(*)) $< out/book_\{n\}.$(subst out/,,$(*)).png +out/book_01.%.svg: book.typ book.json locale/%.ini out + typst compile --input lang=$(subst out/,,$(*)) $< out/book_\{n\}.$(subst out/,,$(*)).svg +out/book.%.pdf: book.typ book.json locale/%.ini out + typst compile --input lang=$(subst out/,,$(*)) $< $@ + +out/%.webp: out/%.png + ffmpeg -i $< -y $@ + +out/book.svg.tar.zst: $(svg_pages) + tar -cf $@ $^ +out/book.webp.tar.zst: $(webp_pages) + tar -cf $@ $^ + +.PHONY: clean +clean: + rm -rf out + rm -f book.json + |