Merge branch 'main' into 225-ebook-situation

This commit is contained in:
Ced
2023-10-11 09:40:47 +01:00
11 changed files with 148 additions and 132 deletions

View File

@@ -6,7 +6,7 @@ CLEAN := latexmk -cd -lualatex -c -use-make
CHECK_1 := lacheck
CHECK_2 := chktex
# we want bash as shell
# We want bash as shell
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
@@ -38,6 +38,8 @@ images += $(wildcard images/*/*.png)
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.jpg))
images += $(foreach directory, $(chapters), $(wildcard $(directory)/*.png))
bw_images := $(addprefix bw-book-epub/OEBPS/, $(images))
src_all := $(src_tex) $(src_figures) $(src_tables) tex4ebook.cfg book.mk4 $(images)
website_src := $(src_all) website.cfg
@@ -79,6 +81,23 @@ book_sans_serif/book_sans_serif.pdf: $(src_all)
epub/%.epub: %.tex $(src_all) cover/cover-page.xbb
$(EBOOK) -f epub $<
copy_ebook_files: build_ebook
mkdir -p bw-book-epub/
rsync -au --exclude "book.epub" book-epub/ bw-book-epub/
convert_ebook_images: copy_ebook_files
mogrify -resize '800x800>' \
tstrip -interlace Plane -gaussian-blur 0.05 -quality 85\% \
-set colorspace Gray -separate -evaluate-sequence Mean $(bw_images)
bw_ebook.zip: convert_ebook_images
zip -qXr9D bw_ebook.zip bw-book-epub
epub/bw_book.epub: bw_ebook.zip
mv bw_ebook.zip epub/bw_book.epub
bw_epub: epub/bw_book.epub
# Now with the rules
# Expected usual rules first
@@ -90,14 +109,16 @@ help:
@echo ""
@echo "default: builds the book in pdf format (serif)"
@echo ""
@echo "all: pdf and ebooks serif and sans-serif accessible version, same as"
@echo " build release"
@echo "all: pdf serif and sans-serif accessible version, as well as ebooks"
@echo " in colour and black&white versions"
@echo ""
@echo "bake: same as build all"
@echo ""
@echo "check: runs static analysis checker on LaTeX source to spot"
@echo " programming or typographic mistakes"
@echo ""
@echo "clean: delete all intermediate files keep targets (pdf/ebooks/website)"
@echo ""
@echo "mrproper: delete all generated files intermediate and pdf/ebooks/website"
@echo " clean_figures: delete intermediate TikZ files"
@echo " clean_website_build: delete intermediate website files"
@@ -105,7 +126,9 @@ help:
@echo ""
@echo "build_pdf: builds both serif and accessible pdf"
@echo ""
@echo "build_ebook: builds only the ebook"
@echo "build_ebook: builds only the colour ebook"
@echo ""
@echo "build_bw_ebook: builds the low res black & white ebook"
@echo ""
@echo "build_sans_serif_pdf: build accessible pdf only"
@echo ""
@@ -123,7 +146,7 @@ help:
@echo ""
@echo "quick: compiles serif_pdf but runs lulatex only once"
@echo ""
@echo "quick_ebook: compiles serif_ebook but runs lulatex only once"
@echo "quick_ebook: compiles ebook but runs lulatex only once"
@echo ""
@echo "show_tools_version: Show version of tools used on the build machine"
@echo ""
@@ -134,30 +157,26 @@ help:
@echo "set DEBUG i.e make DEBUG=1 build_ebook to add debug flags to commands"
# Finally project specif targets
.PHONY: build_pdf
# Finally actual project targets (i.e. build pdf and ebooks)
.PHONY: build_pdf build_serif_pdf build_sans_serif_pdf build_ebook
build_pdf: build_serif_pdf build_sans_serif_pdf
.PHONY: build_serif_pdf
build_serif_pdf: book_serif/book.pdf
.PHONY: build_sans_serif_pdf
build_sans_serif_pdf: book_sans_serif/book_sans_serif.pdf
.PHONY: build_ebook
build_ebook: build_serif_ebook
build_ebook: epub/book.epub | make_release_dir
.PHONY: build_serif_ebook
build_serif_ebook: epub/book.epub | make_release_dir
build_bw_ebook: epub/bw_book.epub | make_release_dir
.PHONY: export_figures
.PHONY: export_figures check
# Requires that you have docker running on your computer.
export_figures: build_pdf $(tgt_figures)
cd figures/ && bash export_figures.sh
# Goal is not really to have 0 warning reported but we should check we don't
# add many and if we do, we know they are false positive
PHONY: check
check: $(SRC_TEX)
@echo "Running: " $(CHECK_1)
$(CHECK_1) book.tex
@@ -165,7 +184,9 @@ check: $(SRC_TEX)
@echo "Running: " $(CHECK_2)
$(CHECK_2) book.tex
.PHONY: clean_figures
# Clean up and delete generated files
.PHONY: clean_figures clean_ebook_build clean_website_build clean mrproper
clean_figures:
- $(CLEAN) $(patsubst %.tex, %.png.in, $(src_figures))
- rm $(patsubst %.tex, %.png.pdf, $(src_figures))
@@ -173,7 +194,6 @@ clean_figures:
- rm $(wildcard figures/*.png.*)
- rm cover/cover-page.xbb
.PHONY: clean_ebook_build
clean_ebook_build:
-rm book*.{4ct,4tc,aux,bbl,bcf,blg,dvi,fdb_latexmk,fls,html}
-rm book*.{idv,lg,loc,log,ncx,run.xml,tmp,xref}
@@ -181,13 +201,11 @@ clean_ebook_build:
-rm book.css
-rm content.opf
.PHONY: clean_website_build
clean_website_build: clean_ebook_build
-rm book-*.svg
-rm book.{loc,dlog}
-rm $(subst $(website_dir)/,, $(wildcard $(website_dir)/*.html))
.PHONY: clean
clean: clean_ebook_build clean_figures clean_website_build
$(CLEAN) -output-directory=book_serif book.tex
$(CLEAN) -output-directory=book_sans_serif book_sans_serif.tex
@@ -196,7 +214,6 @@ clean: clean_ebook_build clean_figures clean_website_build
-rm -rf book*-epub/OEBPS
-rm book*-epub/mimetype
.PHONY: mrproper
mrproper: clean
$(CLEAN) -C $(src_figures)
$(CLEAN) -C -output-directory=book_serif book.tex
@@ -211,27 +228,26 @@ mrproper: clean
-rm -rf book-epub/
-rm -rf $(website_dir)
.PHONY: bake
# top level releases rules
.PHONY: bake make_release_dir release_serif release_sans_serif
bake: release_serif release_sans_serif
.PHONY: make_release_dir
make_release_dir:
mkdir -p release
.PHONY: release_serif
release_serif: build_serif_pdf build_serif_ebook | make_release_dir
release_serif: build_serif_pdf build_ebook build_bw_ebook | make_release_dir
cp book_serif/book.pdf release/TheBreadCode-The-Sourdough-Framework.pdf
cp epub/book.epub release/TheBreadCode-The-Sourdough-Framework.epub
.PHONY: release_sans_serif
release_sans_serif: build_sans_serif_pdf | make_release_dir
cp book_sans_serif/book_sans_serif.pdf release/TheBreadCode-The-Sourdough-Framework-sans-serif.pdf
# Website stuff
.PHONY: html website
$(website_dir)/book.html: $(website_src) cover/cover-page.xbb
$(WEBSITE) -d $(website_dir) book.tex
.PHONY: html
html: $(website_dir)/book.html
cp $< $(website_dir)/index.html
@@ -243,18 +259,17 @@ html: $(website_dir)/book.html
touch ../website/$@
# TODO: this will run every single time, but is so fast we don't really care
.PHONY: website
website: html ../website/_bundle_install_done $(ruby_src)
cd ../website && ruby modify_build.rb
# Debug Stuff from now on
.PHONY: quick show_tools_version printvars
# Those 2 targets allow fast debug cycles but not reolvig refrences etc
quick: # run latex only once no biber, no references etc..
# Those 2 targets allow fast debug cycles but not resolving references etc
quick: # run latex only once no biber, no references etc...
$(LATEX) -e '$$max_repeat=1' -output-directory=book_serif book.tex
quick_ebook: cover/cover-page.xbb # run latex only once no biber, refe etc..
quick_ebook: cover/cover-page.xbb # run latex only once no biber, ref etc...
$(EBOOK) --mode draft -f epub book.tex
show_tools_version: # Show version of tools used on the build machine