cryptol/docs/ProgrammingCryptol/Makefile
2016-04-19 11:41:55 -07:00

80 lines
2.5 KiB
Makefile

TARGET = Cryptol
TMP = tmp
MAIN = main
MAINTARGET= ${MAIN}/${TARGET}
TMPTARGET = ${TMP}/${TARGET}
SRCS = ${wildcard *.tex */*.tex *.sty */*.sty} ${wildcard *.bib */*.bib} \
${wildcard *.sty} Makefile ${wildcard *.cry */*.cry}
SPELLSRC = ${filter-out ${wildcard utils/*.tex}, ${wildcard *.tex */*.tex}}
LTMPDIR = tmp
NEWSPELL = ${LTMPDIR}/${TARGET}.SPELLNEW
OLDSPELL = ${LTMPDIR}/${TARGET}.SPELLOLD
SPELL = aspell -t -l
AUX = ${wildcard ${TMP}/*.blg} ${wildcard ${TMP}/*.bbl} ${wildcard ${TMP}/*.aux} \
${wildcard ${TMP}/*.eps} ${wildcard ${TMP}/*.log} ${wildcard ${TMP}/*.toc} \
${wildcard ${TMP}/*.out} ${wildcard ${TMP}/*.idx} ${wildcard ${TMP}/*.ilg} \
${wildcard ${TMP}/*.ind} ${wildcard ${TMP}/*.brf} ${wildcard ${TMP}/*.glg} \
${wildcard ${TMP}/*.glo} ${wildcard ${TMP}/*.gls} ${wildcard ${TMP}/*.ist} \
LATEX = xelatex -output-directory=${TMP} -halt-on-error -file-line-error
# LATEX = xelatex -output-driver=xdvipdfmx -output-directory=${TMP} -halt-on-error -file-line-error
BIBTEX = bibtex
MAKEINDEX = makeindex
# TODO: Switch to using pdflatex or rubber?
# TODO: Ensure that TEXINPUTS is set correctly to make \includes and \usepackages more robust?
all: pdf
cp ${TMP}/Cryptol.pdf ..
test:
cd aes ; make test
cd highAssurance ; make test
cd enigma ; make test
pdf: ${TARGET}.pdf
${TMP}:
mkdir -p ${TMP}
${TARGET}.pdf: ${SRCS} ${TMP}
# surely I don't need this many latex's and indexes etc; but this looks like a sure fire way of
# getting numbers right.. heh
${LATEX} ${MAINTARGET}
${MAKEINDEX} ${TMP}/Cryptol.glo -s ${TMP}/Cryptol.ist -t ${TMP}/Cryptol.glg -o ${TMP}/Cryptol.gls
${MAKEINDEX} ${TMPTARGET}
${BIBTEX} ${TMPTARGET}
${LATEX} ${MAINTARGET}
${MAKEINDEX} ${TMPTARGET}
${MAKEINDEX} ${TMP}/Cryptol.glo -s ${TMP}/Cryptol.ist -t ${TMP}/Cryptol.glg -o ${TMP}/Cryptol.gls
${BIBTEX} ${TMPTARGET}
${LATEX} ${MAINTARGET}
${LATEX} ${MAINTARGET}
# for quickly seeing changes; might get the labels wrong
quick: ${SRCS}
${LATEX} ${MAINTARGET}
.PHONY: squeaky superClean clean quickSpell
clean:
rm -f ${AUX}
squeaky: clean
rm -f ${TARGET}.pdf
make -C tools clean
spellClean:
rm -f ${NEWSPELL} ${OLDSPELL}
quickSpell:
@touch ${NEWSPELL}
@mv -f ${NEWSPELL} ${OLDSPELL}
@cat ${SPELLSRC} | ${SPELL} | tr "A-Z" "a-z" | sort | uniq | less > ${NEWSPELL}
@echo '(The ones marked with < are new.)'
@diff ${NEWSPELL} ${OLDSPELL}
.PHONY: continuous
continuous:
@make -C tools