#----------------------------------------------------------------------
# Help
#----------------------------------------------------------------------
all:
	@echo "Make rules available:"
	@echo "    You need noweb (http://www.eecs.harvard.edu/~nr/noweb) for all of these"
	@echo "  dvifiles -  Build .dvi files for all except agents and filters"
	@echo "  psfiles  -  Build .ps files for all except agents and filters"
	@echo "  agentdvifiles - Build .dvi files for all agents."
	@echo "  agentpsfiles - Build .ps files for all agents."
	@echo "  filterdvifiles - Build .dvi files for all filters."
	@echo "  filterpsfiles - Build .ps files for all filters."

#----------------------------------------------------------------------
# Macros
#----------------------------------------------------------------------

RM		= rm

POD2MAN		= pod2man
POD2NW		= pod2nw
PNWFLAGS	= -i

LATEXMK	=	prv
LMKFLAGS=	-scan
LATEX	=	$(LATEXMK) $(LMKFLAGS)
DVIPS	=	dvips

NOWEAVE	=	noweave
NWFLAGS =       -index -option smallcode -autodefs perl
NOTANGLE=	notangle
CPIF	=	cpif

#----------------------------------------------------------------------
# Suffix rules
#----------------------------------------------------------------------

.SUFFIXES:	.tex .dvi .ps .pdf .pm .nw

.tex.dvi:
	TEXINPUTS=$(TEXINPUTS) $(LATEX) $<

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

.pm.dvi:
	$(POD2NW) $(PNWFLAGS) $<
	$(NOWEAVE) -latex $(NWFLAGS) $*.nw | $(CPIF) $*.tex
	TEXINPUTS=$(TEXINPUTS) $(LATEXMK) $*.tex
	$(LATEXMK) --clean $*
	$(RM) $*.nw $*.tex

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

AAFIDPMFILES	= $(wildcard AAFID/*.pm) $(wildcard Comm/*.pm) $(wildcard Util/*.pm)
AGENTPMFILES	= $(wildcard Agents/*.pm)
FILTERPMFILES	= $(wildcard Filter/*.pm)
PMFILES		=  $(AAFIDPMFILES)
ALLPMFILES	=  $(AAFIDPMFILES) $(FILTERPMFILES) $(AGENTPMFILES)
TEXFILES	= $(patsubst %.pm,%.tex,$(PMFILES))
DVIFILES	= $(patsubst %.pm,%.dvi,$(PMFILES))
NWFILES		= $(patsubst %.pm,%.nw,$(PMFILES))
PSFILES		= $(patsubst %.pm,%.ps,$(PMFILES))
AGENTTEXFILES	= $(patsubst %.pm,%.tex,$(AGENTPMFILES))
AGENTDVIFILES	= $(patsubst %.pm,%.dvi,$(AGENTPMFILES))
AGENTNWFILES		= $(patsubst %.pm,%.nw,$(AGENTPMFILES))
AGENTPSFILES		= $(patsubst %.pm,%.ps,$(AGENTPMFILES))
FILTERTEXFILES	= $(patsubst %.pm,%.tex,$(FILTERPMFILES))
FILTERDVIFILES	= $(patsubst %.pm,%.dvi,$(FILTERPMFILES))
FILTERNWFILES		= $(patsubst %.pm,%.nw,$(FILTERPMFILES))
FILTERPSFILES		= $(patsubst %.pm,%.ps,$(FILTERPMFILES))
MAKEAGENTFILES	= makeagent.nw makeagent.pl makeagent.man
DOCDIR 		= ../doc
CODEDOCDIR	= $(DOCDIR)/code

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

dvifiles: $(DVIFILES)
	mv $(DVIFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The dvi files have been placed in $(CODEDOCDIR)
	@echo ===============================================================

psfiles: $(PSFILES)
	mv $(DVIFILES) $(CODEDOCDIR)
	mv $(PSFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The ps and dvi files have been placed in $(CODEDOCDIR)
	@echo The dvi files are a by-product of producing the ps files.
	@echo If you do not want them, cd to $(CODEDOCDIR) and remove them.
	@echo ===============================================================

agentdvifiles: $(AGENTDVIFILES)
	mv $(AGENTDVIFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The dvi files have been placed in $(CODEDOCDIR)
	@echo ===============================================================

agentpsfiles: $(AGENTPSFILES)
	mv $(AGENTDVIFILES) $(CODEDOCDIR)
	mv $(AGENTPSFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The ps and dvi files have been placed in $(CODEDOCDIR)
	@echo The dvi files are a by-product of producing the ps files.
	@echo If you do not want them, cd to $(CODEDOCDIR) and remove them.
	@echo ===============================================================

filterdvifiles: $(FILTERDVIFILES)
	mv $(FILTERDVIFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The dvi files have been placed in $(CODEDOCDIR)
	@echo ===============================================================

filterpsfiles: $(FILTERPSFILES)
	mv $(FILTERDVIFILES) $(CODEDOCDIR)
	mv $(FILTERPSFILES) $(CODEDOCDIR)
	@echo ""
	@echo ===============================================================
	@echo The ps and dvi files have been placed in $(CODEDOCDIR)
	@echo The dvi files are a by-product of producing the ps files.
	@echo If you do not want them, cd to $(CODEDOCDIR) and remove them.
	@echo ===============================================================

printsources: $(DVIFILES)
	cd $(CODEDOCDIR); for i in $(DVIFILES); do dvips $$i; done

cleanlatex:
	for i in $(TEXFILES); do prv --full_clean $$i; rm -f $$i; rm -f `basename $$i .tex`.nw; done

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