PREFIX=manual
MAIN=$(PREFIX).tex
DVINAME=$(PREFIX).dvi
PDFNAME=$(PREFIX).pdf
PSNAME=$(PREFIX).ps
HTMLNAME=$(PREFIX).html
CHMNAME=$(PREFIX).chm

TEX_SRC=$(MAIN) packages.tex macros.tex body.tex \
        cover.tex acknow.tex intro.tex use.tex debugger.tex \
        format-defs.tex direct-cc.tex pl-bips.tex fd-cstr.tex \
        c-interface.tex references.tex tbl-contents.tex the-index.tex \
        version_no.tex

TRACE=
#TRACE=-trace


.SUFFIXES:
.SUFFIXES: .html .hva .pdf .eps .ps .dvi .aux .toc .idx .tex $(SUFFIXES)

help:
	@echo
	@echo '*** Please read the README file ***'
	@echo
	@echo 'make all       make DVI, PDF, PostScript, HTML and CHM versions'
	@echo 'make dvi       make DVI version        (needs LaTeX2e)'
	@echo 'make pdf       make PDF version        (needs pdflatex)'
	@echo 'make ps        make PostScript version (needs dvips)'
	@echo 'make html      make HTML version       (needs HeVeA)'
	@echo 'make chm       make HTMLHelp version   (needs hhc - Win32 only)'
	@echo
	@echo 'make clean     remove all temporary files'
	@echo 'make distclean same as clean'
	@echo 'make clean-all remove all versions'
	@echo 'make clean-full remove all versions'
	@echo
	@echo 'make help      this help'
	@echo


.eps.pdf:
	epstopdf $<
#	ps2pdf $< $@



all: dvi pdf ps html chm



dvi: $(DVINAME)

$(DVINAME): $(TEX_SRC) compil-scheme.eps debug-box.eps
	do_latex -dvi $(TRACE) $(MAIN)



pdf: $(PDFNAME)

$(PDFNAME): $(TEX_SRC) compil-scheme.pdf debug-box.pdf
	do_latex -pdf $(TRACE) $(MAIN)


ps: $(PSNAME)

$(PSNAME): $(DVINAME)
	dvips -o $(PSNAME) -D 300 $(DVINAME)



html: Html/index.html

$(HTMLNAME): custom.hva $(TEX_SRC)
	hevea -O -nosymb -s -exec xxdate.exe -fix custom.hva $(MAIN) -o $(HTMLNAME)

Html/index.html: $(HTMLNAME)
	rm -f Html/index.html Html/$(PREFIX)*.html
	(cd Html && hacha -hrf -tocbis ../$(HTMLNAME) && ./hh_do_hhc_hhk $(PREFIX))

chm: $(CHMNAME)

$(CHMNAME): $(HTMLNAME) Html/index.html
	-(cd Html; hhc hh-$(PREFIX).hhp; mv -f $(CHMNAME) .. 2>/dev/null)

clean:
	rm -f $(PREFIX).aux $(PREFIX).toc $(PREFIX).ind $(PREFIX).idx
	rm -f $(PREFIX).pdf.aux $(PREFIX).pdf.toc $(PREFIX).pdf.ind $(PREFIX).pdf.idx
	rm -f $(PREFIX).dvi.aux $(PREFIX).dvi.toc $(PREFIX).dvi.ind $(PREFIX).dvi.idx
	rm -rf $(PREFIX)*.htoc $(PREFIX)*.haux $(PREFIX)*.hind $(PREFIX)*.hrf


distclean: clean


clean-all: distclean
	rm -f $(DVINAME) $(PDFNAME) $(PSNAME) $(CHMNAME)
	rm -f $(HTMLNAME) Html/$(PREFIX)*.html Html/index.html

clean-aux:
	rm -rf *.aux *.toc *.ind *.idx *.log *.haux *.htoc *.hidx *.hind *.out *.ilg *.hrf

clean-full: clean-all clean-aux

clean-test:
	rm -f ?.dvi ?.pdf ?.html ?.ps ?.info ?.txt
	rm -f ?.aux ?.toc ?.idx ?.ind ?.log
	rm -f ?.haux ?.htoc ?.hidx ?.hind ?.out ?.ilg ?.hrf


# distributions (DVI and HTML)

DVIDIRNAME=manual-dvi
HTMLDIRNAME=manual-html

dist-dvi: dvi $(DVIDIRNAME).tar.gz

$(DVIDIRNAME).tar.gz: $(DVINAME)
	ln -sf . $(DVIDIRNAME)
	tar cf $(DVIDIRNAME).tar $(DVIDIRNAME)/$(DVINAME) $(DVIDIRNAME)/??*.eps
	gzip -f $(DVIDIRNAME).tar
	rm -f $(DVIDIRNAME)
	@echo DVI distribution is in $(DVIDIRNAME).tar.gz


dist-html: $(HTMLDIRNAME).tar.gz

$(HTMLDIRNAME).tar.gz: Html/index.html
	ln -sf Html $(HTMLDIRNAME)
	tar cf $(HTMLDIRNAME).tar $(HTMLDIRNAME)/index.html $(HTMLDIRNAME)/$(PREFIX)*.html $(HTMLDIRNAME)/???*.gif
	gzip -f $(HTMLDIRNAME).tar
	rm -f $(HTMLDIRNAME)
	@echo HTML distribution is in $(HTMLDIRNAME).tar.gz


NAMES_FILE=/tmp/doc_names

names:
	@echo '# file generated by doc/Makefile'   >$(NAMES_FILE)
	@echo "PREFIX=$(PREFIX)"                  >>$(NAMES_FILE)
	@echo "DVINAME=$(DVINAME)"                >>$(NAMES_FILE)
	@echo "PDFNAME=$(PDFNAME)"                >>$(NAMES_FILE)
	@echo "PSNAME=$(PSNAME)"                  >>$(NAMES_FILE)
	@echo "HTMLNAME=$(HTMLNAME)"              >>$(NAMES_FILE)
	@echo "DVIDIRRNAME=$(DVIDIRNAME)"         >>$(NAMES_FILE)
	@echo "DVITARNAME=$(DVIDIRNAME).tar.gz"   >>$(NAMES_FILE)
	@echo "HTMLDIRNAME=$(HTMLDIRNAME)"        >>$(NAMES_FILE)
	@echo "HTMLTARNAME=$(HTMLDIRNAME).tar.gz" >>$(NAMES_FILE)

for-release: all dist-dvi dist-html names
