###################################################################### # # Makefile for ouexam document class. # ###################################################################### SHELL=/bin/sh .PHONY: class doc example install tidy clean # commands PDFLATEX=pdflatex -shell-escape -synctex=1 -interaction=nonstopmode -file-line-error # files EXAMPLE1_IMAGES=eg1-1.pdf eg1-2.pdf eg1-3.pdf EXAMPLE2_IMAGES=eg2-2.pdf eg2-3.pdf eg2-4.pdf eg2-5.pdf # Build everything. all: class doc example # Build the class file only. class: ouexam.cls ouexam.cls: ouexam.dtx latex ouexam.ins # Build the documentation only. doc: ouexam.pdf ouexam.pdf: ouexam.dtx $(EXAMPLE1_IMAGES) $(EXAMPLE2_IMAGES) $(PDFLATEX) $< makeindex -s gglo.ist -o ouexam.gls ouexam.glo $(PDFLATEX) $< $(PDFLATEX) $< $(EXAMPLE1_IMAGES): example1.pdf pdfjam --outfile $@ $< `echo $@ | cut -c 5` $(EXAMPLE2_IMAGES): example2.pdf pdfjam --outfile $@ $< `echo $@ | cut -c 5` # Build the example only. example: example1.pdf example2.pdf example%.pdf: example%.tex content.tex ouexam.cls $(PDFLATEX) $< $(PDFLATEX) $< # Install files in the appropriate locations in the texmf tree rooted at # $(TEXMFHOME). Either define this as a shell variable or pass it as # command line argument, e.g., make install TEXMFHOME=/usr/local/texmf. install: class doc example mkdir -p $(TEXMFHOME)/tex/latex/ouexam cp ouexam.cls $(TEXMFHOME)/tex/latex/ouexam mkdir -p $(TEXMFHOME)/doc/latex/ouexam/example cp eg*.pdf ouexam.pdf ouexam.dtx ouexam.ins \ HISTORY.md MANIFEST README.md \ $(TEXMFHOME)/doc/latex/ouexam cp Create*.pdf example*.tex example*.pdf lstlang0.sty \ $(TEXMFHOME)/doc/latex/ouexam/example texhash # Clean up: remove temporary files. tidy: rm -f *.tmp *.aux *.out *.log *.glo *.toc *.ps \ $(EXAMPLE1_IMAGES) $(EXAMPLE2_IMAGES) # Clean up: remove everything except the original source. clean: tidy rm -f ouexam.pdf eg*.pdf example*.pdf *.cls