# -*- makefile -*-
#
# Extra magic needed by the LaTeX->XML conversion process.  This requires
# $(TOOLSDIR) to be properly defined.

DOCFIXER=	$(TOOLSDIR)/sgmlconv/docfixer.py
ESIS2ML=	$(TOOLSDIR)/sgmlconv/esis2sgml.py
LATEX2ESIS=	$(TOOLSDIR)/sgmlconv/latex2esis.py
CONVERSION=	$(TOOLSDIR)/sgmlconv/conversion.xml

ESISTARGETS=	$(patsubst %.tex,%.esis,$(wildcard *.tex))
ESIS1TARGETS=	$(patsubst %.tex,%.esis1,$(wildcard *.tex))
XMLTARGETS=	$(patsubst %.tex,%.xml,$(wildcard *.tex))

L2EFLAGS=

all:	xml

esis:	$(ESISTARGETS)
esis1:	$(ESIS1TARGETS)
xml:	$(XMLTARGETS)

ESISTOOLS=	$(TOOLSDIR)/sgmlconv/esistools.py

$(ESISTARGETS): $(LATEX2ESIS) $(DOCFIXER) $(ESISTOOLS) $(CONVERSION)
$(ESIS1TARGETS): $(LATEX2ESIS) $(CONVERSION)
# This variant is easier to work with while debugging the conversion spec:
#$(ESISTARGETS): $(LATEX2ESIS) $(DOCFIXER) $(ESISTOOLS)
$(XMLTARGETS): $(ESIS2ML)


.SUFFIXES: .esis .esis1 .tex .xml

.tex.esis1:
	$(LATEX2ESIS) $(L2EFLAGS) $< $@

.esis1.esis:
	$(DOCFIXER) $< $@

.esis.xml:
	$(ESIS2ML) --xml $< $@


clean:
	rm -f *.esis *.esis1

clobber: clean
	rm -f *.xml
