# Makefile for PNG specification

MASTER=png-master.html

SCRIPTS=makesingle makemulti makenroff maketex makecontents \
	makenumbers makeshowxrefs makedotleaders fixnroff.sh

default: png-all.html png.html png-rfc.txt png.tex png-rfc.tex \
	pngextensions.tex pngextensions.txt

png-all.html: png-master-xrefs.html png-contents makesingle
	./makesingle -w3c <png-master-xrefs.html >png-all.html

png.html: $(MASTER) png-contents makemulti
	./makemulti -w3c $(MASTER) png.html

png.tex: png-master-xrefs.html maketex
	./maketex -w3c <png-master-xrefs.html >png.tex

png-rfc.tex: png-master-xrefs.html maketex
	./maketex -rfc <png-master-xrefs.html >png-rfc.tex

png.dvi: png.tex
	latex png.tex
	echo May need to run latex more than once to get page numbers right.

png.ps: png.dvi
	dvips png.dvi

png-rfc.dvi: png-rfc.tex
	latex png-rfc.tex
	echo May need to run latex more than once to get page numbers right.

png-rfc.ps: png-rfc.dvi
	dvips png-rfc.dvi

pngextensions.tex: pngextensions.html maketex
	./maketex <pngextensions.html >pngextensions.tex

pngextensions.dvi: pngextensions.tex
	latex pngextensions.tex

pngextensions.ps: pngextensions.dvi
	dvips pngextensions.dvi

pngextensions.txt: pngextensions.html makenroff
	./makenroff <pngextensions.html >pngextensions.nr
	nroff -ms pngextensions.nr | ./fixnroff.sh > pngextensions.txt


png-contents: $(MASTER) makecontents
	./makecontents <$(MASTER) >png-contents

showxrefs: $(MASTER) makeshowxrefs
	./makeshowxrefs <$(MASTER) >showxrefs
	chmod +x showxrefs

png-master-xrefs.html: $(MASTER) showxrefs
	./showxrefs <$(MASTER) >png-master-xrefs.html

numbers: png-master-xrefs.html png-contents \
		makenroff makenumbers fixnroff.sh
	./makenroff -rfc -PN < png-master-xrefs.html > png-rfc-names.nr
	nroff -ms png-rfc-names.nr | ./fixnroff.sh > png-rfc-names.txt
	./makenumbers < png-rfc-names.txt > numbers
	chmod +x numbers
	rm png-rfc-names.nr png-rfc-names.txt

png-rfc-contents: png-master-xrefs.html png-contents \
		numbers makedotleaders makecontents makenroff
	./makecontents -PN < png-master-xrefs.html >png-contents-names
	./numbers < png-contents-names >png-contents-numbers.html
	./makenroff -rfc < png-contents-numbers.html >png-contents-numbers.nr
	nroff -ms png-contents-numbers.nr >png-contents-numbers.txt
	./makedotleaders < png-contents-numbers.txt >png-rfc-contents
	rm png-contents-names png-contents-numbers.html
	rm png-contents-numbers.nr png-contents-numbers.txt

png-rfc.txt: png-master-xrefs.html png-rfc-contents \
		makenroff fixnroff.sh
	mv png-contents hold-png-contents
	cp png-rfc-contents png-contents
	./makenroff -rfc <png-master-xrefs.html > png-rfc.nr
	nroff -ms png-rfc.nr | ./fixnroff.sh > png-rfc.txt
	mv -f hold-png-contents png-contents

clean:
	rm -f png-all.html png.html png-contents PNG-*.html \
	png-master-xrefs.html showxrefs numbers png-rfc-contents \
	png-rfc.nr png-rfc.txt \
	png.tex png.dvi png.ps png-rfc.tex png-rfc.dvi png-rfc.ps \
	pngextensions.tex pngextensions.dvi pngextensions.ps \
	pngextensions.nr pngextensions.txt

distribute:
	rm -f pngspec-html.tar*
	tar cvf pngspec-html.tar png.html PNG-*.html
	gzip -9 pngspec-html.tar

dist-master:
	rm -f pngspec-master.tar*
	tar cvf pngspec-master.tar png-master.html pngextensions.html \
		Makefile $(SCRIPTS) README
	gzip -9 pngspec-master.tar
