DOC := faq manual hacker
MANS := gontc
TXT_DOC := $(addsuffix .txt, $(DOC) $(MANS))
PS_DOC := $(addsuffix .ps, $(DOC) $(MANS))
PDF_DOC := $(addsuffix .pdf, $(DOC) $(MANS))
HTML_DOC := $(addsuffix -html, $(DOC)) libref-html \
	    $(addsuffix .html, $(MANS) index)
MAN_DOC := $(addsuffix .1, $(MANS))
HEVEA := hevea -fix -s
HACHA := hacha

all: valid pdf html man

clean-aux:
	rm -f *.toc *.log *.aux *-html *.dvi *.haux *.xsl modules.xml
	$(MAKE) -C tutorial clean

clean: clean-aux
	rm -f *.dvi *.ps *.txt *.png *.pdf *.1 $(HTML_DOC)
	rm -rf $(DOC)

valid:
	xmllint --noout --dtdvalid doc.dtd reference.xml
	xmllint --noout --valid $(addsuffix .xml, $(MANS))

ps: $(PS_DOC)

pdf: $(PDF_DOC)

txt: $(TXT_DOC)

html: $(HTML_DOC)

man: $(MAN_DOC)

%.dvi: %.tex
	latex $<
	latex $<

%.ps: %.dvi
	dvips $< -o $@

#%.pdf: %.tex
#	latex $<
#	pdflatex $<

%.pdf: %.dvi
	dvipdf $< $@

%-html: %.tex fixup.pl
	$(HEVEA) $<
	rm -rf $(basename $<)
	mkdir $(basename $<)
	mv $(basename $<).html $(basename $<)
	(cd $(basename $<) && $(HACHA) *.html)
	rm $(basename $<)/*motif*.gif $(basename $<)/$(basename $<).html
	perl fixup.pl $(basename $<)/*
	cp icons/*.png $(basename $<)
	touch $@

%.html: %.tex fixup.pl
	$(HEVEA) $< -o xindex.html
	perl fixup.pl xindex.html
	mv xindex.html $@
	perl -i -p -e 's|../index.html|index.html|' $@

%.1: %.xml
	refentry2man -m $<

index.html: homepage.html fixup.pl
	cp homepage.html index.html
	perl fixup.pl index.html
	cp icons/*.png .

%.txt: %.tex
	$(HEVEA) $<
	lynx -dump $(basename $<).html > $@
	rm $(basename $<).html
	
modules.xml: ../tools/gontdoc/gontdoc $(wildcard ../lib/*/*.gi)
	$^

style.xsl: style.xspp
	xspp style.xspp > style.xsl

libref-html: style.xsl modules.xml
	rm -rf libref
	mkdir libref
	xsltproc style.xsl modules.xml
	cp icons/*.png style.css libref
	touch $@
