TEX_FILES = $(wildcard *.tex)

DVI_FILES = ${TEX_FILES:%.tex=%.dvi}
PS_FILES  = ${TEX_FILES:%.tex=%.ps}
PDF_FILES = ${TEX_FILES:%.tex=%.pdf}
RTF_FILES = ${TEX_FILES:%.tex=%.rtf}
WWW_FILES = ${TEX_FILES:%.tex=%.www}

PDF_TARGETS = $(wildcard ${PDF_FILES:%=%*})
RTF_TARGETS = $(wildcard ${PDF_FILES:%=%*})

DEPEND      = ${TEX_FILES:%.tex=.%.d}
MAKECONF    = $(wildcard Makeconf)
MAKERULES   = $(wildcard Makerules)

ifneq ("${MAKECONF}","")
    include ${MAKECONF}
endif

#------------------------------------------------------------------------------

all: ps ${PDF_TARGETS} ${RTF_TARGETS}

ps:   ${PS_FILES}
dvi:  ${DVI_FILES}
pdf:  ${PDF_FILES}
rtf:  ${RTF_FILES}
www:  ${WWW_FILES}
html: www

ifneq ("${DEPEND}","")
    include ${DEPEND}
endif

ifneq ("${MAKERULES}","")
    include ${MAKERULES}
endif

#------------------------------------------------------------------------------

%.ps: %.dvi
	dvips $*.dvi -D600 -o $@

%.pdf: %.ps
	ps2pdf $< $@

%.dvi: %.tex
	latex $<
	if grep -q "Rerun to get cross-references right" $*.log \
	    2> /dev/null 2>&1; \
	then \
	    latex $< ; \
	fi

%.www: %.tex
	([ -d $*.www ] && mv $*.www $*; true)
	latex2html $<
	mv $* $*.www

%.rtf: %.tex
	latex2rtf -o $@ $<

.%.d: %.tex
	mktexdepend $< > $@

#------------------------------------------------------------------------------

clean:
	rm -f *~

cleanps:
	rm -f ${PS_FILES}

cleanpdf:
	rm -f ${PDF_FILES}

cleanrtf:
	rm -f ${RTF_FILES}

cleandvi:
	rm -f ${DVI_FILES}

cleanMost: clean
	rm -f *.log *.aux

cleanAll: clean cleanMost cleandvi cleanps cleanpdf cleanrtf
	rm -rf ${WWW_FILES}
