Newer
Older
# Requires GNU make, xargs, a latex distribution, sage
# and sagetex.sty visible in TEXINPUTS
MAINTEXFILE = main.tex
TEXFILES = ${MAINTEXFILE}
NOTEBOOKBASENAMES = plots_and_expressions examples characteristic_curves rank_zero_case other_P_choice
SAGETEXARTIFACT=main.sagetex.sout
main.pdf: ${TEXFILES} ${SAGETEXARTIFACT}
SAGETEXSCRIPT = main.sagetex.sage
PYTHONPATH=./sagetexscripts/ sage ${SAGETEXSCRIPT}
${SAGETEXSCRIPT}: ${TEXFILES}
# PYTHON LIBS FROM NOTEBOOKS
define NOTEBOOK_TO_LIB_RULE
$(1).py: $(1).ipynb
jupyter nbconvert --to script $(1).ipynb
mv $(1).py $(1).sage
sed -e "/get_ipython/d" -i $(1).sage
sage --preparse $(1).sage
mv $(1).sage.py $(1).py
endef
$(foreach _base, $(NOTEBOOKBASENAMES), $(eval $(call NOTEBOOK_TO_LIB_RULE, $(_base))))
notebook_py_libs: $(addsuffix .py, $(NOTEBOOKBASENAMES))
# TEX FILES FROM RUST
define RUST_TO_TEX_RULE
$(1).tex: $(1).rs
chromacode -r -i $(1).rs -o $(1).tex
endef
RUSTSNIPPETSBASE=tilt.rs/src/tilt_stability/considered_b_for_beta tilt.rs/src/tilt_stability/find_all
RUSTBASENAMES=$(basename $(wildcard tilt.rs/src/**/*.rs)) ${RUSTSNIPPETSBASE}
$(foreach _base, $(RUSTBASENAMES), $(eval $(call RUST_TO_TEX_RULE, $(_base))))
rust_tex: $(addsuffix .tex, $(RUSTBASENAMES))
# specific snippets of rust
#
tilt.rs/src/tilt_stability/considered_b_for_beta.rs: tilt.rs/src/tilt_stability/left_pseudo_semistabilizers.rs
sed -n -e '24,36p' $^ > $@
tilt.rs/src/tilt_stability/find_all.rs: tilt.rs/src/tilt_stability/left_pseudo_semistabilizers.rs
sed -n -e '79,99p' $^ > $@
# Stuff that can be built before ever running latex:
pretex: rust_tex notebook_py_libs
.PHONY: clean nosage noappendix
clean:
rm -rf **/__pycache__
latexmk -C
git clean -xf || echo no git repo to use for cleaning
nosage:
latexmk