Skip to content
Snippets Groups Projects
Makefile 1.93 KiB
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
Luke Naylor's avatar
Luke Naylor committed
SAGETEXARTIFACT=main.sagetex.sout

main.pdf: ${TEXFILES} ${SAGETEXARTIFACT}
Luke Naylor's avatar
Luke Naylor committed
sage_artifacts: ${SAGETEXARTIFACT}

SAGETEXSCRIPT = main.sagetex.sage
Luke Naylor's avatar
Luke Naylor committed
${SAGETEXARTIFACT}: ${SAGETEXSCRIPT} notebook_py_libs
	PYTHONPATH=./sagetexscripts/ sage ${SAGETEXSCRIPT}

${SAGETEXSCRIPT}: ${TEXFILES}
Luke Naylor's avatar
Luke Naylor committed
	latexmk || echo this shoud fail
# 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))	

Luke Naylor's avatar
Luke Naylor committed
# 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' $^ > $@

Luke Naylor's avatar
Luke Naylor committed
# 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

Luke Naylor's avatar
Luke Naylor committed
noappendix: ${TEXFILES} ${SAGETEXARTIFACT}