Index: BOOK/Makefile
===================================================================
--- BOOK/Makefile	(revision dcf5785aaa69db6dad4abd16d97dfc8843ea253a)
+++ BOOK/Makefile	(revision a9e389d1332d7291fc7d94c861c6af59e98958ac)
@@ -1,224 +1,134 @@
-TOP		:= $(PWD)
-RENDERDIR	:= $(TOP)/../render
+BASEDIR		:= ~/cross-lfs-book
+DUMPDIR		:= ~/cross-lfs-commands
+DLLISTDIR	:= ~/cross-lfs-dllist
+CHUNK_QUIET	:= 1
+XSLROOTDIR	:= /usr/share/xml/docbook/xsl-stylesheets-1.69.1
 
-VALIDATEDIR	:= $(RENDERDIR)/validate
-PROFILEDIR	:= $(RENDERDIR)/profile
+S		:= -
 
-HTMLDIR		:= $(RENDERDIR)/html
-NOCHUNKDIR	:= $(RENDERDIR)/nochunk
+ARCHS		:= x86
 
-FODIR		:= $(RENDERDIR)/fo
-PDFDIR		:= $(RENDERDIR)/pdf
+ARCHS_HTML	:= $(ARCHS:%=%$(S)html)
+ARCHS_NOCHUNKS	:= $(ARCHS:%=%$(S)nochunks)
+ARCHS_PDF	:= $(ARCHS:%=%$(S)pdf)
+ARCHS_TEXT	:= $(ARCHS:%=%$(S)text)
+ARCHS_VALIDATE	:= $(ARCHS:%=%$(S)validate)
+ARCHS_TROUBLE	:= $(ARCHS:%=%$(S)trouble)
+ARCHS_DUMP	:= $(ARCHS:%=%$(S)dump)
+ARCHS_DLLIST	:= $(ARCHS:%=%$(S)dllist)
 
-TROUBLEDIR	:= $(RENDERDIR)/trouble
-DUMPDIR		:= $(RENDERDIR)/commands
-DLLISTDIR	:= $(RENDERDIR)/download-list
+.PHONY: lfs tidy render titlepage $(ARCHS_HTML) nochunks $(ARCHS_NOCHUNKS) pdf $(ARCHS_PDF) text $(ARCHS_TEXT) validate $(ARCHS_VALIDATE) trouble $(ARCHS_TROUBLE) dump-commands $(ARCHS_DUMP) download-list $(ARCHS_DLLIST)
 
-CHUNK_QUIET	:= 1
-ROOT_ID		:=
+lfs: render tidy
 
-ARCHS		:= x86 mips arm
-
-ifdef V
-  Q =
+ifeq ($(shell which tidy >/dev/null 2>&1 && echo yes),yes)
+tidy:
+	@echo Running tidy on the created HTML
+	@for filename in `find $(BASEDIR) -name "*.html"`; do \
+	  tidy -config tidy.conf $$filename; \
+	  true; \
+	  sh obfuscate.sh $$filename; \
+	  sed -i -e "s@text/html@application/xhtml+xml@g" $$filename; \
+	done;
 else
-  Q = @
+tidy:
+	@echo Tidy is not installed on this system
 endif
 
-.PHONY: clfs
-clfs: html
+render: $(ARCHS_HTML) titlepage
 
-.PHONY: tidy tidy-f tidy-d
-ifeq ($(shell which tidy >/dev/null 2>&1 && echo yes),yes)
-tidy:
-	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR)
+titlepage:
+	@xsltproc --nonet --output $(BASEDIR)/index.html $(PWD)/stylesheets/top-index.xsl $(PWD)/index.xml
 
-tidy-f:
-	@echo "Running tidy on F:$(shell basename $(TIDY_FILE))"
-	@$(TOP)/tidy.sh "$(TIDY_FILE)"
+$(ARCHS_HTML): override html_arch = $(@:%$(S)html=%)
+$(ARCHS_HTML):
+	@echo "Rendering HTML of $(html_arch)..."
+	@xsltproc --xinclude --nonet -stringparam profile.condition html -stringparam chunk.quietly $(CHUNK_QUIET) -stringparam base.dir $(BASEDIR)/$(html_arch)/ $(PWD)/stylesheets/lfs-chunked.xsl $(PWD)/$(html_arch)-index.xml
+	@mkdir -p $(BASEDIR)/$(html_arch)/stylesheets
+	@cp $(PWD)/stylesheets/*.css $(BASEDIR)/$(html_arch)/stylesheets
+	@sed -i -e "s@../stylesheets@stylesheets@g" $(BASEDIR)/$(html_arch)/*.html
+	@mkdir -p $(BASEDIR)/$(html_arch)/images
+	@cp $(XSLROOTDIR)/images/*.png $(BASEDIR)/$(html_arch)/images
+	@sed -i -e "s@../images@images@g" $(BASEDIR)/$(html_arch)/*.html
 
-tidy-d:
-	@echo "Running tidy on D:$(shell basename $(TIDY_DIR))"
-	@$(TOP)/tidy.sh "$(TIDY_DIR)"
-else
-tidy tidy-f tidy-d:
-	@echo "Tidy is not installed on this system"
-endif
+nochunks: $(ARCHS_NOCHUNKS) tidy
 
-.PHONY: titlepage
-titlepage:
-	@echo "Rendering the top-level index..."
-	$(Q)xsltproc --nonet --output $(HTMLDIR)/index.html \
-	  $(PWD)/stylesheets/top-index.xsl \
-	  $(PWD)/index.xml
-	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(HTMLDIR)/index.html
+$(ARCHS_NOCHUNKS): override nochunk_arch = $(@:%$(S)nochunks=%)
+$(ARCHS_NOCHUNKS):
+	@echo "Rendering Single File HTML of $(nochunk_arch)..."
+	@xsltproc --xinclude --nonet -stringparam profile.condition html --output $(BASEDIR)/CLFS-BOOK-$(nochunk_arch).html $(PWD)/stylesheets/lfs-nochunks.xsl $(nochunk_arch)-index.xml
 
-ARCHS_VD_XML := $(ARCHS:%=%-validate_dump-xml)
-.PHONY: $(ARCHS_VD_XML)
-$(ARCHS_VD_XML): override arch = $(@:%-validate_dump-xml=%)
-$(ARCHS_VD_XML):
-	@echo "Validating $(arch) book..."
-	$(Q)mkdir -p $(VALIDATEDIR)
-	$(Q)xmllint --nonet --noent --xinclude \
-	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
-	  -o $(VALIDATEDIR)/$(arch)-full.xml \
-	  $(PWD)/$(arch)-index.xml
+pdf: $(ARCHS_PDF)
 
-ARCHS_P_XML := $(ARCHS:%=%-profiled-xml)
-.PHONY: $(ARCHS_P_XML)
-$(ARCHS_P_XML): override arch = $(@:%-profiled-xml=%)
-$(ARCHS_P_XML):
-	@$(MAKE) --no-print-directory $(arch)-validate_dump-xml
-	@echo "Generating profiled $(arch) book..."
-	$(Q)mkdir -p $(PROFILEDIR)
-	$(Q)xsltproc --nonet --stringparam profile.condition html \
-	  --output $(PROFILEDIR)/$(arch)-html.xml \
-	  $(PWD)/stylesheets/lfs-xsl/profile.xsl \
-	  $(VALIDATEDIR)/$(arch)-full.xml
+$(ARCHS_PDF): override pdf_arch =  $(@:%$(S)pdf=%)
+$(ARCHS_PDF):
+	@echo "Rendering PDF of $(pdf_arch)..."
+	@xsltproc --xinclude --nonet --output $(BASEDIR)/clfs-$(pdf_arch)-pdf.fo $(PWD)/stylesheets/lfs-pdf.xsl $(pdf_arch)-index.xml
+	@sed -i -e "s/inherit/all/" $(BASEDIR)/clfs-$(pdf_arch)-pdf.fo
+	@fop.sh -q -fo $(BASEDIR)/clfs-$(pdf_arch)-pdf.fo -pdf $(BASEDIR)/CLFS-BOOK-$(pdf_arch).pdf
+	@rm $(BASEDIR)/clfs-$(pdf_arch)-pdf.fo
 
-ARCHS_HTML := $(ARCHS:%=%-html)
-.PHONY: html render $(ARCHS_HTML)
-html render: $(ARCHS_HTML) titlepage
-$(ARCHS_HTML): override arch = $(@:%-html=%)
-$(ARCHS_HTML):
-	@$(MAKE) --no-print-directory $(arch)-profiled-xml
+text: $(ARCHS_TEXT)
 
-	@echo "Rendering chunked XHTML of $(arch)..."
-	$(Q)mkdir -p $(HTMLDIR)/$(arch)
-	$(Q)xsltproc --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \
-	  -stringparam rootid "$(ROOT_ID)" \
-	  -stringparam base.dir $(HTMLDIR)/$(arch)/ \
-	  $(PWD)/stylesheets/clfs-chunked.xsl \
-	  $(PROFILEDIR)/$(arch)-html.xml
+$(ARCHS_TEXT): override text_arch =  $(@:%$(S)text=%)
+$(ARCHS_TEXT):
+	@echo "Rendering Text of $(text_arch)..."
+	@xsltproc --xinclude --nonet --output $(BASEDIR)/clfs-$(text_arch)-text.fo $(PWD)/stylesheets/lfs-pdf.xsl $(text_arch)-index.xml
+	@sed -i -e "s/inherit/all/" $(BASEDIR)/clfs-$(text_arch)-text.fo ; \
+	@fop.sh -q -fo $(BASEDIR)/clfs-$(text_arch)-text.fo -txt $(BASEDIR)/CLFS-BOOK-$(text_arch).txt ; \
+	@rm $(BASEDIR)/clfs-$(text_arch)-text.fo
 
-	@echo "Copying CSS code and images for $(arch)..."
-	$(Q)mkdir -p $(HTMLDIR)/$(arch)/stylesheets
-	$(Q)cp $(PWD)/stylesheets/lfs-xsl/*.css $(HTMLDIR)/$(arch)/stylesheets
-	$(Q)sed -i -e "s@../stylesheets@stylesheets@g" $(HTMLDIR)/$(arch)/*.html
-	$(Q)mkdir -p $(HTMLDIR)/$(arch)/images
-	$(Q)cp $(PWD)/images/*.png $(HTMLDIR)/$(arch)/images
-	$(Q)sed -i -e "s@../images@images@g" $(HTMLDIR)/$(arch)/*.html
+validate: $(ARCHS_VALIDATE)
 
-	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR)/$(arch)
+$(ARCHS_VALIDATE): override validate_arch =  $(@:%$(S)validate=%)
+$(ARCHS_VALIDATE):
+	@echo "Validating $(validate_arch)..."
+	@xmllint --xinclude --noout --nonet --postvalid $(PWD)/$(validate_arch)-index.xml
 
-ARCHS_NOCHUNKS := $(ARCHS:%=%-nochunks)
-.PHONY: nochunks $(ARCHS_NOCHUNKS)
-nochunks: $(ARCHS_NOCHUNKS)
-$(ARCHS_NOCHUNKS): override arch = $(@:%-nochunks=%)
-$(ARCHS_NOCHUNKS):
-	@$(MAKE) --no-print-directory $(arch)-profiled-xml
+trouble: $(ARCHS_TROUBLE)
 
-	@echo "Rendering Single File HTML of $(arch)..."
-	$(Q)mkdir -p $(NOCHUNKDIR)
-	$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
-	  --output $(NOCHUNKDIR)/CLFS-$(arch).html \
-	  $(PWD)/stylesheets/clfs-nochunks.xsl \
-	  $(PROFILEDIR)/$(arch)-html.xml
+$(ARCHS_TROUBLE): override trouble_arch =  $(@:%$(S)trouble=%)
+$(ARCHS_TROUBLE):
+	@echo "Troubleshooting $(trouble_arch)..."
+	@xmllint --xinclude --nonet --postvalid $(PWD)/$(trouble_arch)-index.xml > /tmp/dump-$(trouble_arch)
+	@xmllint --xinclude --noout --nonet --valid /tmp/dump-$(trouble_arch)
+	@echo "You can now look at /tmp/dump-$(trouble_arch) to see the errors"
 
-	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(NOCHUNKDIR)/CLFS-$(arch).html
+dump-commands: $(ARCHS_DUMP)
 
-ARCHS_FO := $(ARCHS:%=%-fo)
-.PHONY: fo $(ARCHS_FO)
-fo: $(ARCHS_FO)
-$(ARCHS_FO): override arch = $(@:%-fo=%)
-$(ARCHS_FO):
-	@$(MAKE) --no-print-directory $(arch)-profiled-xml
+$(ARCHS_DUMP): override dump_arch =  $(@:%$(S)dump=%)
+$(ARCHS_DUMP):
+	@echo "Extracting commands from $(dump_arch)..."
+	@xsltproc --xinclude --nonet --output $(DUMPDIR)/$(dump_arch)/ $(PWD)/stylesheets/dump-commands.xsl $(dump_arch)-index.xml
 
-	@echo "Generating FO file of $(arch)..."
-	@mkdir -p $(FODIR)
-	$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
-	  --output $(FODIR)/$(arch).fo \
-	  $(PWD)/stylesheets/clfs-pdf.xsl \
-	  $(PROFILEDIR)/$(arch)-html.xml
-	$(Q)sed -i -e 's/span="inherit"/span="all"/' $(FODIR)/$(arch).fo
+download-list: $(ARCHS_DLLIST)
 
-ARCHS_PDF := $(ARCHS:%=%-pdf)
-.PHONY: pdf $(ARCHS_PDF)
-pdf: $(ARCHS_PDF)
-$(ARCHS_PDF): override arch = $(@:%-pdf=%)
-$(ARCHS_PDF):
-	@$(MAKE) --no-print-directory $(arch)-fo
+$(ARCHS_DLLIST): override dllist_arch = $(@:%$(S)dllist=%)
+$(ARCHS_DLLIST):
+	@echo "Creating download list for $(dllist_arch)..."
+	@xsltproc --xinclude --nonet --output $(DLLISTDIR)/$(dllist_arch).dl.list $(PWD)/stylesheets/wget.xsl $(dllist_arch)-index.xml
 
-	@echo "Rendering PDF of $(arch)..."
-	$(Q)mkdir -p $(PDFDIR)
-	$(Q)fop $(FODIR)/$(arch).fo $(PDFDIR)/CLFS-$(arch).pdf
-
-ARCHS_VALIDATE := $(ARCHS:%=%-validate)
-.PHONY: validate $(ARCHS_VALIDATE)
-validate: $(ARCHS_VALIDATE)
-$(ARCHS_VALIDATE): override arch =  $(@:%-validate=%)
-$(ARCHS_VALIDATE):
-	@echo "Validating $(arch)..."
-	$(Q)xmllint --xinclude --noout --nonet \
-	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
-	  $(PWD)/$(arch)-index.xml
-
-ARCHS_TROUBLE := $(ARCHS:%=%-trouble)
-.PHONY: trouble $(ARCHS_TROUBLE)
-trouble: $(ARCHS_TROUBLE)
-$(ARCHS_TROUBLE): override arch = $(@:%-trouble=%)
-$(ARCHS_TROUBLE):
-	@echo "Troubleshooting $(arch)..."
-	@mkdir -p $(TROUBLEDIR)
-	$(Q)xmllint --xinclude --nonet \
-	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
-	  -o $(TROUBLEDIR)/dump-$(arch) \
-	  $(PWD)/$(arch)-index.xml
-	$(Q)xmllint --xinclude --noout --nonet \
-	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
-	  $(TROUBLEDIR)/dump-$(arch)
-	@echo "You can now look at $(TROUBLEDIR)/dump-$(arch) to see the errors"
-
-ARCHS_DUMP := $(ARCHS:%=%-dump)
-.PHONY: dump-commands $(ARCHS_DUMP)
-dump-commands: $(ARCHS_DUMP)
-$(ARCHS_DUMP): override arch = $(@:%-dump=%)
-$(ARCHS_DUMP):
-	@echo "Extracting commands from $(arch)..."
-	$(Q)mkdir -p $(DUMPDIR)/$(arch)
-	$(Q)xsltproc --xinclude --nonet \
-	  --output $(DUMPDIR)/$(arch)/ \
-	  $(PWD)/stylesheets/dump-commands.xsl \
-	  $(PWD)/$(arch)-index.xml
-
-ARCHS_DLLIST := $(ARCHS:%=%-dllist)
-.PHONY: download-list $(ARCHS_DLLIST)
-download-list: $(ARCHS_DLLIST)
-$(ARCHS_DLLIST): override arch = $(@:%-dllist=%)
-$(ARCHS_DLLIST):
-	@echo "Creating download list for $(arch)..."
-	$(Q)mkdir -p $(DLLISTDIR)
-	$(Q)xsltproc --xinclude --nonet \
-	  --output $(DLLISTDIR)/$(arch).list \
-	  $(PWD)/stylesheets/wget.xsl \
-	  $(PWD)/$(arch)-index.xml
-
-FG_GREEN := $(shell echo -e '\e[0;32m')
-FG_BLUE := $(shell echo -e '\e[0;34m')
-FG_DEFAULT := $(shell echo -e '\e[0;0m')
 help:
-	@echo "Output: $(RENDERDIR)"
-	@echo
 	@echo "HTML Targets"
-	@echo "  $(FG_GREEN)clfs tidy html render titlepage $(FG_BLUE)$(ARCHS_HTML)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mlfs tidy render titlepage \e[0;34m$(ARCHS_HTML)\e[0;0m"
 	@echo
 	@echo "NoChunks Targets"
-	@echo "  $(FG_GREEN)nochunks tidy $(FG_BLUE)$(ARCHS_NOCHUNKS)$(FG_DEFAULT)"
-	@echo
-	@echo "FO Targets"
-	@echo "  $(FG_GREEN)fo $(FG_BLUE)$(ARCHS_FO)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mnochunks tidy \e[0;34m$(ARCHS_NOCHUNKS)\e[0;0m"
 	@echo
 	@echo "PDF Targets"
-	@echo "  $(FG_GREEN)pdf $(FG_BLUE)$(ARCHS_PDF)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mpdf \e[0;34m$(ARCHS_PDF)\e[0;0m"
+	@echo
+	@echo "Text Targets"
+	@echo -e "  \e[0;32mtext \e[0;34m$(ARCHS_TEXT)\e[0;0m"
 	@echo
 	@echo "Validate Targets"
-	@echo "  $(FG_GREEN)validate $(FG_BLUE)$(ARCHS_VALIDATE)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mvalidate \e[0;34m$(ARCHS_VALIDATE)\e[0;0m"
 	@echo
 	@echo "Trouble Targets"
-	@echo "  $(FG_GREEN)trouble $(FG_BLUE)$(ARCHS_TROUBLE)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mtrouble \e[0;34m$(ARCHS_TROUBLE)\e[0;0m"
 	@echo
 	@echo "Dump-Commands Targets"
-	@echo "  $(FG_GREEN)dump-commands $(FG_BLUE)$(ARCHS_DUMP)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mdump-commands \e[0;34m$(ARCHS_DUMP)\e[0;0m"
 	@echo
 	@echo "Download-List Targets"
-	@echo "  $(FG_GREEN)download-list $(FG_BLUE)$(ARCHS_DLLIST)$(FG_DEFAULT)"
+	@echo -e "  \e[0;32mdownload-list \e[0;34m$(ARCHS_DLLIST)\e[0;0m"
