#
# Generate an xml file for each .tip file in the book directory
#

LATEX	=	../latex

CHAPTERS =	$(shell ruby contents.rb --list html)
REFS =		$(shell ruby contents.rb --list-ref html)

XML =		$(shell ruby contents.rb --list xml)
XML_REFS =	$(shell ruby contents.rb --list-ref xml)

REF_TIPS = 	$(wildcard $(LATEX)/ref_*.tip)


html/%.html:	xml/%.xml convert.xsl
		@echo $@
		@sabcmd convert.xsl $< $@ `ruby contents.rb --params-for $@`

tmp/%.txi:	$(LATEX)/%.tip ../util/code.rb
		@echo $@
		ruby expand.rb < $< | \
		(cd $(LATEX) && ruby -I ../util ../util/code.rb -for-xml -name $< ) >$@  || (rm -f $@; exit 1)

xml/%.xml:	tmp/%.txi tip2xml.rb
		@echo $@
		@[ -d xml ] || mkdir xml
		@ruby tip2xml.rb <$< >$@ || (rm -f $@; exit 1)


.PHONY:		all chapters refs

all:		setup html/index.html html/builtins.html chapters refs

setup:
		[ -d tmp ] || mkdir tmp
		[ -d xml ] || mkdir xml
		[ -d html ] || mkdir html
		cp *.gif html
		cp *.css html



xml/builtins.xml: $(REF_TIPS) genIndex.pl
		perl ./genIndex.pl $(REF_TIPS) >$@

html/builtins.html: xml/builtins.xml conv_index.xsl
		sabcmd conv_index.xsl $< $@ `ruby contents.rb --params-for $@`


xml/index.xml:	 $(XML) $(XML_REFS)
		ruby contents.rb --gen-contents >xml/index.xml

chapters:	$(CHAPTERS)

refs:		$(REFS)


DIR		= ProgrammingRuby-$(VERSION)

tar:		$(XML) $(XML_REFS) $(CHAPTERS) $(REFS)
		rm -f $(DIR)/*
		-rmdir  $(DIR)
		mkdir $(DIR)
		ln -s ../xml $(DIR)/xml
		ln -s ../html $(DIR)/html
		cp COPYING $(DIR)
		cp README $(DIR)
		cp frameset.html $(DIR)/index.html
		cp pr_toc.html $(DIR)
		( cd html && ruby ../anchors.rb *.html ) >$(DIR)/pr_idx.html
		tar czfh $(DIR).tgz $(DIR)
		rm -f $(DIR)/*
		rmdir $(DIR)

clean:
		rm -rf xml html tmp *~
