Newer
Older
ouexam / Makefile
######################################################################
#
# File: $Id$
#
# Makefile for ouexam document class.
#
######################################################################

SHELL=/bin/sh


.PHONY: class doc example install tidy clean


# files
EXAMPLE1_IMAGES = eg1-1.eps eg1-2.eps eg1-3.eps
EXAMPLE2_IMAGES = eg2-2.eps eg2-3.eps eg2-4.eps eg2-5.eps


# 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.
# Note: requires ps2pdf (GhostScript) to build the PDF version and
# ps2epsi to build the example images.
doc: ouexam.pdf

ouexam.pdf:	ouexam.ps
	ps2pdf $<

ouexam.ps: ouexam.dvi
	dvips -o $@ $<

ouexam.dvi:	ouexam.dtx $(EXAMPLE1_IMAGES) $(EXAMPLE2_IMAGES)
	latex $<
	latex $<
	latex $<

$(EXAMPLE1_IMAGES): example1.dvi
	dvips -pp `echo $@ | cut -c 5` -E -o $@ $<

$(EXAMPLE2_IMAGES): example2.dvi
	dvips -pp `echo $@ | cut -c 5` -E -o $@ $<


# Build the example only.
example: example1.pdf example2.pdf

example1.pdf: example1.ps
	ps2pdf $<

example1.ps: example1.dvi
	dvips -o $@ $<

example1.dvi: example1.tex example.tex ouexam.cls
	latex $<
	latex $<

example2.pdf: example2.ps
	ps2pdf $<

example2.ps: example2.dvi
	dvips -o $@ $<

example2.dvi: example2.tex example.tex ouexam.cls
	latex $<
	latex $<


# 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*.eps ouexam.pdf ouexam.dvi ouexam.dtx ouexam.ins \
		FAQ INSTALL MANIFEST README TODO \
		$(TEXMFHOME)/doc/latex/ouexam
	cp Create*.eps example*.tex example*.dvi 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 *.dvi *.pdf *.cls