YEAR = 13
LATEX = latex
DVIPS = dvips
#DISTILL = distill -joboptions +PrintOptimized.joboptions
DISTILL = ps2pdf
MAKEINDEX = makeindex
GZIP = /usr/bin/gzip
RM = rm
MV = mv
LPR = lpr -s 
LATEX2HTML = latex2html

TEXFILES := $(wildcard *.tex)
DVIFILES := $(patsubst %.tex,%.dvi,$(TEXFILES))
PSFILES := $(patsubst %.tex,%.ps,$(TEXFILES))
FLTFILES := $(patsubst %.tex,filtered/%.tex,$(TEXFILES))
WEBFILES := $(patsubst %.tex,adass$(YEAR)/%/index.html,$(TEXFILES))
REPRINTS := $(patsubst %.tex,adass$(YEAR)/reprints/%.ps.gz,$(TEXFILES))

default : help

help :
	@echo "Common Targets:"
	@echo "    help         (default) Print this help."
	@echo " "
	@echo "    preview      Create preview versions of papers by running" 
	@echo "                 latex (twice) and dvips on all tex files."
	@echo "    print        Print all preview *.ps files on default "  \
                                "printer."
	@echo "    clean        Remove all preview intermediate files (*.dvi, "
	@echo "                    *.log, *.aux); good to run after preview"
	@echo " "
	@echo "    cleaner      Remove all created files for previewing "
	@echo "                    (including *.ps); good to run before"   \
                                "adass"$(YEAR)".ps"
	@echo "    adass"$(YEAR)".ps   Create PostScript version of proceedings"
	@echo "    htmlbook     Create HTML version of proceedings"
	@echo "    cleanbook    Clean up after making both versions of"    \
                                "proceedings"

preview : $(PSFILES)

%.dvi : %.tex 
	@$(LATEX) $<
	@$(LATEX) $<

%.ps : %.dvi
	$(DVIPS) $< -o $@

print : $(PSFILES)
	$(LPR) $?
	@touch print

clean :
	-$(RM) *.dvi *.log *.aux
	-$(RM) -rf TMP

cleaner : clean
	-$(RM) *.ps

filtered/%.tex : %.tex
	papfilter -d filtered $<

index.sty: index.doc
	@echo; echo Creating index.sty; echo
	mkdir TMP; cd TMP; cp ../index.doc .; tex index.doc
	mv TMP/index.sty .
	$(RM) -rf TMP

adass$(YEAR).latex.dvi : adass$(YEAR).latex coverart.latex titlePage.latex preface.latex participantList.latex index.sty $(FLTFILES)
	$(LATEX) adass$(YEAR).latex
	#$(MAKEINDEX) adass$(YEAR)
	$(MAKEINDEX) -o adass$(YEAR).latex.and adass$(YEAR).latex.adx
	$(MAKEINDEX) -o adass$(YEAR).latex.snd adass$(YEAR).latex.sdx
	$(LATEX) adass$(YEAR).latex
	finalfilter -r adass$(YEAR).latex
	$(LATEX) adass$(YEAR).latex

adass$(YEAR).latex.ps : adass$(YEAR).latex.dvi
	$(DVIPS) -o adass$(YEAR).latex.ps adass$(YEAR).latex.dvi

adass$(YEAR).latex.pdf: adass$(YEAR).latex.ps
	$(DISTILL) adass$(YEAR).latex.ps

cleanbook: clean
	-$(RM) -f adass$(YEAR).latex.dvi adass$(YEAR).latex.aux adass$(YEAR).latex.log
	-$(RM) -f adass$(YEAR).latex.idx adass$(YEAR).latex.ind adass$(YEAR).latex.ilg
	-$(RM) -f adass$(YEAR).latex.adx adass$(YEAR).latex.and adass$(YEAR).latex.toc
	-$(RM) -f adass$(YEAR).latex.sdx adass$(YEAR).latex.snd filtered/*.aux
	-$(RM) -f aindex.latex sindex.latex *.ax2 adass$(YEAR).adb
	-$(RM) -f $(PSFILES:ps=l2h) adass$(YEAR).l2h

htmlbook:  adass$(YEAR).dvi adass$(YEAR).adb $(FLTFILES)
	indfilter adass$(YEAR).and > aindex.latex
	indfilter adass$(YEAR).snd > sindex.latex
	$(LATEX2HTML) -init_file adassproc.init adass$(YEAR).latex
	cp -f blueball.gif adass$(YEAR)
	$(MAKE) $(WEBFILES)

adass$(YEAR).adb:
	mkaux2db -t adass$(YEAR).latex

adass$(YEAR):
	-mkdir -p adass$(YEAR)/icons

%.ax2: %.tex adass$(YEAR).adb
	mkaux2 -d adass$(YEAR).adb $*

adass$(YEAR)/reprints/%.ps: %.tex %.ax2 
	-mkdir -p adass$(YEAR)/reprints
	$(LATEX) $<
	$(LATEX) $<
	$(DVIPS) -o $@ $(<:tex=dvi)

reprints: $(REPRINTS)

adass$(YEAR)/reprints/%.ps.gz: adass$(YEAR)/reprints/%.ps
	$(GZIP) $<

adass$(YEAR)/%/index.html: %.tex %.ax2 adass$(YEAR)/reprints/%.ps.gz
	$(LATEX2HTML) -init_file adassconf.init $<
	$(MV) $* adass$(YEAR) 

distclean: cleanbook cleaner 
	-if [ -d RCS -a -f bookco ]; then  \
             $(RM) -f `bookco -l`;         \
        fi
	-$(RM) -fr adass$(YEAR) filtered
	-$(RM) -f adassconf.l2h index.sty

# This prevents so-called intermediate files from being deleted; this 
# is needed for versions of GNU make >~ 3.72
#
.SECONDARY: 

.PRECIOUS: adass$(YEAR)/reprints/%.ps.gz %.ax2

