## Define the appropriate configuration variables.

TeXLIB = .:../LaTeXmacros:../bibliography/:
LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error
BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex

## Define the text source files.

SOURCES = ${addsuffix .tex, \
user \
../refrat/keywords \
../refrat/operidents \
}

FIGURES = ${addsuffix .tex, \
EHMHierarchy \
Cdecl \
pointer1 \
}

PICTURES = ${addsuffix .pstex, \
pointer2 \
}

PROGRAMS = ${addsuffix .tex, \
}

GRAPHS = ${addsuffix .tex, \
}

## Define the documents that need to be made.

DOCUMENT = user.pdf

# Directives #

all : ${DOCUMENT}

clean :
	rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t *.cf \
		${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}

# File Dependencies #

${DOCUMENT} : ${basename ${DOCUMENT}}.ps
	ps2pdf $<

${basename ${DOCUMENT}}.ps : ${basename ${DOCUMENT}}.dvi
	dvips $< -o $@

${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} ${basename ${DOCUMENT}}.tex \
		../LaTeXmacros/common.tex ../LaTeXmacros/lstlang.sty ../LaTeXmacros/indexstyle ../bibliography/cfa.bib
	# Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
	if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
	# Must have *.aux file containing citations for bibtex
	if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
	-${BibTeX} ${basename $@}
	# Some citations reference others so run steps again to resolve these citations
	${LaTeX} ${basename $@}.tex
	-${BibTeX} ${basename $@}
	# Make index from *.aux entries and input index at end of document
	makeindex -s ../LaTeXmacros/indexstyle ${basename $@}.idx
	${LaTeX} ${basename $@}.tex
	# Run again to get index title into table of contents
	${LaTeX} ${basename $@}.tex

predefined :
	sed -f predefined.sed ${basename ${DOCUMENT}}.tex > ${basename $@}.cf

## Define the default recipes.

%.tex : %.fig
	fig2dev -L eepic $< > $@

%.ps : %.fig
	fig2dev -L ps $< > $@

%.pstex : %.fig
	fig2dev -L pstex $< > $@
	fig2dev -L pstex_t -p $@ $< > $@_t

# Local Variables: #
# compile-command: "make" #
# End: #
