# (http://opensource.franz.com/preamble.html), also known as the LLGPL.
##############################################################################
+DOCFILE_BASE_DEFAULT:=uffi
+DOCFILE_EXT_DEFAULT:=xml
-DOCFILE_BASE_DEFAULT=uffi
-DOCFILE_EXT_DEFAULT=xml
# Standard docfile processing
+DEBIAN=$(shell expr "`cat /etc/issue`" : '.*Debian.*')
+SUSE=$(shell expr "`cat /etc/issue`" : '.*SuSE.*')
+REDHAT=$(shell expr "`cat /etc/issue`" : '.*RedHat.*')
+
+
+ifneq (${DEBIAN},0)
+OS:=debian
+else
+ ifneq (${SUSE},0)
+ OS=suse
+ else
+ ifneq (${REDHAT},0)
+ OS=redhat
+ endif
+ endif
+endif
+
+
ifndef DOCFILE_BASE
DOCFILE_BASE=${DOCFILE_BASE_DEFAULT}
endif
DOCFILE_EXT=${DOCFILE_EXT_DEFAULT}
endif
-DOCFILE=${DOCFILE_BASE}.${DOCFILE_EXT}
-FOFILE=${DOCFILE_BASE}.fo
-PDFFILE=${DOCFILE_BASE}.pdf
-PSFILE=${DOCFILE_BASE}.ps
-DVIFILE=${DOCFILE_BASE}.dvi
-TXTFILE=${DOCFILE_BASE}.txt
-TMPFILES=${DOCFILE_BASE}.aux ${DOCFILE_BASE}.out ${DOCFILE_BASE}.log
-DOCFILES=$(shell echo *.sgml)
+DOCFILE:=${DOCFILE_BASE}.${DOCFILE_EXT}
+FOFILE:=${DOCFILE_BASE}.fo
+PDFFILE:=${DOCFILE_BASE}.pdf
+PSFILE:=${DOCFILE_BASE}.ps
+DVIFILE:=${DOCFILE_BASE}.dvi
+TXTFILE:=${DOCFILE_BASE}.txt
+HTMLFILE:=${DOCFILE_BASE}.html
+TMPFILES:=${DOCFILE_BASE}.aux ${DOCFILE_BASE}.out ${DOCFILE_BASE}.log
+DOCFILES:=$(shell echo *.xml *.xsl)
+
+ifeq ($(XSLTPROC),)
+ XSLTPROC:=xsltproc
+endif
+
+CATALOG:=`pwd`/catalog-${OS}.xml
+CHECK:=XML_CATALOG_FILES="$(CATALOG)" xmllint --noout --xinclude --postvalid $(DOCFILE) || exit 1
.PHONY: all
all: html pdf
.PHONY: check
check:
+ @echo "Operating System Detected: ${OS}"
@$(CHECK)
.PHONY: html
html: html.tar.gz
-html.tar.gz: $(DOCFILES) Makefile
+html.tar.gz: $(DOCFILES) Makefile
@rm -rf html
- @xmlto -o html xhtml $(DOCFILE)
+ @mkdir html
+ @XML_CATALOG_FILES="$(CATALOG)" $(XSLTPROC) --stringparam chunker.output.encoding ISO-8859-1 \
+ --xinclude --output html/ html_chunk.xsl $(DOCFILE)
@GZIP='-9' tar czf html.tar.gz html
.PHONY: fo
fo: ${FOFILE}
-${FOFILE}: $(DOCFILES) Makefile
- @xmlto fo $(DOCFILE)
+${FOFILE}: $(DOCFILES) Makefile
+ @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output $(FOFILE) fo.xsl $(DOCFILE)
.PHONY: pdf
pdf: ${PDFFILE}
-${PDFFILE}: ${FOFILE}
+${PDFFILE}: ${DOCFILES} Makefile
+ @$(MAKE) fo
@fop $(FOFILE) -pdf $(PDFFILE) > /dev/null
.PHONY: dvi
.PHONY: ps
ps: ${PSFILE}
-${PSFILE}: ${FOFILE}
+${PSFILE}: ${DOCFILES} Makefile
+ @$(MAKE) fo
@fop $(FOFILE) -ps $(PSFILE) > /dev/null
txt: ${TXTFILE}
${TXTFILE}: ${FOFILE}
- @fop $(FOFILE) -txt $(TXTFILE) > /dev/null
+ @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output ${HTMLFILE} html.xsl $(DOCFILE)
+ lynx -dump ${HTMLFILE} > ${TXTFILE}
.PHONY: clean
clean:
@rm -f *~ *.bak *.orig \#*\# .\#* texput.log
- @rm -rf html ${PSFILE}
+ @rm -rf html ${PSFILE} ${HTMLFILE}
@rm -f ${TMPFILES} ${FOFILE}
@rm -f ${DVIFILE} ${TXTFILE}