# This Makefile is for development purposes only. You will most likely
# not need to use it.

#----------------------------------------------------------------------
# Help
#----------------------------------------------------------------------
all:
	@echo "Make rules available:"
	@echo "    You need noweb (http://www.eecs.harvard.edu/~nr/noweb) for all of these"
	@echo "  makeagent - Build makeagent.{pl,man} from makeagent.nw"
	@echo "  dvifiles -  Build .dvi files from .pm files"
	@echo "  psfiles  -  Build .ps files from .pm files"

#----------------------------------------------------------------------
# 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 *.pm)
AGENTPMFILES	= $(wildcard Agents/*.pm)
PMFILES		=  $(AAFIDPMFILES) $(AGENTPMFILES)
TEXFILES	= $(patsubst %.pm,%.tex,$(PMFILES))
DVIFILES	= $(patsubst %.pm,%.dvi,$(PMFILES))
NWFILES		= $(patsubst %.pm,%.nw,$(PMFILES))
PSFILES		= $(patsubst %.pm,%.ps,$(PMFILES))
MAKEAGENTFILES	= makeagent.nw makeagent.pl makeagent.man
DOCDIR 		= ../../doc
CODEDOCDIR	= $(DOCDIR)/code

ALLAAFIDFILES	= Makefile TODO $(AAFIDPMFILES) $(MAKEAGENTFILES)

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

makeagent:
	$(NOTANGLE) -Rmakeagent.pl makeagent.nw > makeagent.pl
	$(POD2MAN) makeagent.pl > makeagent.man

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

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 ===============================================================

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

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

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