# Makefile for Sphinx LaTeX output
# Version modifiée spéciale pour FAQ LaTeX GUTenberg

# Additional LaTeX options (passed via variables in latexmkrc/latexmkjarc file)
export LATEXOPTS ?=
# Additional latexmk options
LATEXMKOPTS ?=
export XINDYOPTS = -L french -C utf8  -M sphinx.xdy

FAQ.commit: FORCE_MAKE
	@echo "DÉBUT"
	@date
	@git log -1 --pretty=format:'\def\faqGUTcommitdate{%ad}\def\faqGUTcommitsha{%h}' --date=format:"%d-%m-%Y %T" >FAQ.commit
	@git log -1 --pretty=format:'commit est %h et sa date est %ad' --date=format:"%d-%m-%Y %T"

# Faudrait-il utiliser -norc comme option des latexmk dans codedir ?
# Ou mieux avoir un latexmkrc plus complet (certains exemples nécessiteraient
# un passage de MetaFont).
FAQLaTeXGUTenberg.pdf: FAQ.commit
	@echo "???" >FAQ.nbexemples
	sed -i 's/RequirePackage{parskip}\[=v1\]/RequirePackage{parskip}/' sphinxlatexstylepage.sty
	@[ -d codedir ] || mkdir codedir
	@cp -f latexmkrc_pour_codedir codedir/latexmkrc
	@echo "-----"
	@echo "Logoïfication en cours, il n’y en a que pour quelques secondes."
	@date
	@time perl tex-logos-in-tex_gutfr.bin FAQLaTeXGUTenberg.tex >FAQLaTeXGUTenberg-with-logos.tex
	@echo "-----"
	@echo "Premier passage de lualatex-dev, tu peux te faire un café."
	@echo "On y va en batchmode, sinon c'est hypnotique."
	@date
	@time lualatex-dev -jobname FAQLaTeXGUTenberg -halt-on-error -interaction=batchmode \\let\\faqGUTdonotcomplain\\empty \\input FAQLaTeXGUTenberg-with-logos.tex || { status="$$?"; echo "lualatex-dev en erreur avec return status $$status"; echo "\033[1;31m"; tail -30 FAQLaTeXGUTenberg.log; echo "\033[0m"; echo ""; exit $$status; }
	@echo "-----"
	@echo "Production des -crop.pdf dans codedir et nettoyage des obsolètes."
	@echo "Tu peux aller te faire un deuxième café, et même carrément"
	@echo "laver tout ton linge, le sécher et le repasser si tu as fait"
	@echo "une mise à jour qui a changé des polices ou des formats..."
	@date
	@time /usr/bin/env bash fais-les-pdf-et-crop-les.sh
	@echo "-----"
	@echo "Bon ben maintenant on fait les compilations finales, troisième café."
	@echo "Ici aussi en batchmode pour éviter les crises d'épilepsie."
	@date
	@time latexmk -silent -pdflua -jobname=FAQLaTeXGUTenberg -lualatex="lualatex-dev -halt-on-error" $(LATEXMKOPTS) FAQLaTeXGUTenberg-with-logos.tex || { status="$$?"; echo "Latexmk en erreur avec return status $$status"; echo "\033[1;31m"; tail -30 FAQLaTeXGUTenberg.log; echo "\033[0m"; exit $$status; }
	@echo "-FIN-"

# make latexpdf cherche à faire la cible all-pdf par défaut
all-pdf: FAQLaTeXGUTenberg.pdf

# cette cible sauvegarde un FAQLaTeXGUTenberg.pdf déjà présent
SAUVE_CLAIR:
	@[ -f "FAQLaTeXGUTenberg.pdf" ] && { echo "Préservation du fichier FAQLaTeXGUTenberg.pdf préexistant."; mv FAQLaTeXGUTenberg.pdf FAQLaTeXGUTenberg-clair.pdf; } || rm -f FAQLaTeXGUTenberg-clair.pdf

pdfsombre: SAUVE_CLAIR FAQLaTeXGUTenberg.pdf
	mv FAQLaTeXGUTenberg.pdf FAQLaTeXGUTenberg-sombre.pdf
	@[ -f "FAQLaTeXGUTenberg-clair.pdf" ] && { echo "Restauration du fichier FAQLaTeXGUTenberg.pdf mode clair."; mv FAQLaTeXGUTenberg-clair.pdf FAQLaTeXGUTenberg.pdf; }
	@echo "Le fichier FAQLaTeXGUTenberg-sombre.pdf a été produit."

clean:
	rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.fls *.fdb_latexmk

.PHONY: all-pdf clean FORCE_MAKE SAUVE_CLAIR
