#!/usr/bin/make -f

# Based on a sample makefile in "The Debian SGML/XML HOWTO"
#
MAX_TEX_RECURSION=4

# Use this on Debian Woody
#
#XML_DECL=/usr/lib/sgml/declaration/xml.dcl
#
#HTML_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl
#PRINT_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl


XML_DECL=/usr/share/sgml/declaration/xml.dcl

HTML_SS=/usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
PRINT_SS=/usr/share/sgml/docbook/stylesheet/dsssl/modular/print/docbook.dsl

DOCS = modules.ps modules2.ps modules3.ps config-si.ps morphix.ps manual.ps

EXTRA_DIST = readme.ps changelog.ps tablix.ps tablix_output.ps tablix_modinfo.ps tablix_benchmark.ps tablix_plot.ps
# poster.ps

all: $(DOCS)

dist: $(DOCS) $(EXTRA_DIST)
	tar -czf ../tablix-docs-ps.tar.gz $(DOCS) $(EXTRA_DIST)

modules2.db:
	./moddocdb.pl ../modules/*.c > modules2.db

%.tex: %.db 
	jade -t tex -V tex-backend \
		-d $(PRINT_SS) \
		$(XML_DECL) $<

%.dvi: %.ltx
	# Trick from Adam Di Carlo <adam@onshore.com> to recurse jadetex 
	# "just enough".
	-cp -pf prior.aux pprior.aux
	-cp -pf $(shell basename $< .ltx).aux prior.aux
	latex $<
	if ! cmp $(shell basename $< .ltx).aux prior.aux &&		\
	   ! cmp $(shell basename $< .ltx).aux pprior.aux &&		\
	   expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION); then		\
		rm -f $@						;\
		$(MAKE) -f makedoc $@						;\
	fi
	rm -f prior.aux pprior.aux

%.dvi: %.tex
	# Trick from Adam Di Carlo <adam@onshore.com> to recurse jadetex 
	# "just enough".
	-cp -pf prior.aux pprior.aux
	-cp -pf $(shell basename $< .tex).aux prior.aux
	jadetex $<
	if ! cmp $(shell basename $< .tex).aux prior.aux &&		\
	   ! cmp $(shell basename $< .tex).aux pprior.aux &&		\
	   expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION); then		\
		rm -f $@						;\
		$(MAKE) -f makedoc $@						;\
	fi
	rm -f prior.aux pprior.aux

%.ps: %.dvi
	dvips -f $< > $@

%.html: %.db 
	jade -t sgml \
		-d $(HTML_SS) \
		$(XML_DECL) $< 

%.txt: %.db
	jade -t sgml -V nochunks \
		-d $(HTML_SS) \
	$(XML_DECL) $< > dump.html
	lynx -force_html -dump dump.html > $@
	-rm -f dump.html

validate: %.db
	nsgmls -s -wxml $(XML_DECL) $<

clean: 
	rm -f *.html *.aux *.log *.dvi *.ps *.tex *.txt modules2.db

# special documents

readme.ps:
	a2ps -o readme.ps ../README

changelog.ps:
	a2ps --highlight-level=none -o changelog.ps ../ChangeLog

tablix.ps: tablix.1
	man -Tps -l tablix.1 > tablix.ps

tablix_output.ps: tablix_output.1
	man -Tps -l tablix_output.1 > tablix_output.ps

tablix_modinfo.ps: tablix_modinfo.1
	man -Tps -l tablix_modinfo.1 > tablix_modinfo.ps

tablix_plot.ps: tablix_plot.1
	man -Tps -l tablix_plot.1 > tablix_plot.ps

tablix_benchmark.ps: tablix_benchmark.1
	man -Tps -l tablix_benchmark.1 > tablix_benchmark.ps
