r8215: fix documentation
[hyperobject.git] / doc / Makefile
index b49647281f4e684cb3075bda2b71e4b67275048f..b7200eab39d70a37ba17ec84389ca3ae5d2cd359 100644 (file)
@@ -1,33 +1,43 @@
+##############################################################################
 # FILE IDENTIFICATION
 # 
 #  Name:         Makefile
-#  Purpose:      Makefile for the hyperobject hyperobject documentation
+#  Purpose:      Makefile for the hyperobject documentation
 #  Programer:    Kevin M. Rosenberg
 #  Date Started: Mar 2002
 #
 #  CVS Id:   $Id$
 #
-# This file, part of Hyperobject, is Copyright (c) 2002 by Kevin M. Rosenberg
+# This file, part of HYPEROBJECT, is Copyright (c) 2002-2003 by Kevin M. Rosenberg
 #
-# System variable to select catalog file
-SYSTEM=fink
-#SYSTEM=debian
-# SYSTEM=redhat
+# HYPEROBJECT users are granted the rights to distribute and use this software
+# as governed by the terms of the Lisp Lesser GNU Public License
+# (http://opensource.franz.com/preamble.html), also known as the LLGPL.
+##############################################################################
 
-# Nothing to configure beyond this point
+DOCFILE_BASE_DEFAULT:=hyperobject
+DOCFILE_EXT_DEFAULT:=xml
 
-CATALOG=catalog.$(SYSTEM)
 
-# Custom DSSSL's
-DSSSL_HTML=../dsssl/html/docbook.dsl
-DSSSL_PRINT=dsssl/print/docbook.dsl
-
-DOCFILE_BASE_DEFAULT=hyperobject
-DOCFILE_EXT_DEFAULT=sgml
+# Standard docfile processing
 
-JADE=openjade
+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
 
-# Standard docfile processing
 
 ifndef DOCFILE_BASE
 DOCFILE_BASE=${DOCFILE_BASE_DEFAULT}
@@ -37,13 +47,18 @@ ifndef DOCFILE_EXT
 DOCFILE_EXT=${DOCFILE_EXT_DEFAULT}
 endif
 
-DOCFILE=${DOCFILE_BASE}.${DOCFILE_EXT}
-TEXFILE=${DOCFILE_BASE}.tex
-PDFFILE=${DOCFILE_BASE}.pdf
-PSFILE=${DOCFILE_BASE}.ps
-DVIFILE=${DOCFILE_BASE}.dvi
-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)
+
+CATALOG:=`pwd`/catalog-${OS}.xml
+CHECK:=XML_CATALOG_FILES="$(CATALOG)" xmllint --noout --xinclude --postvalid $(DOCFILE) || exit 1
 
 .PHONY: all
 all: html pdf 
@@ -54,57 +69,57 @@ dist: html pdf
 .PHONY: doc
 doc: html pdf
 
-CHECK=onsgmls -s -C ${CATALOG} || exit 1
-
 .PHONY: check
 check:
+       @echo "Operating System Detected: ${OS}"
        @$(CHECK)
 
 .PHONY: html
 html: html.tar.gz
 
-html.tar.gz: $(DOCFILES) Makefile
-       @$(CHECK)
-       @( rm -rf html ; mkdir html; cd html ; $(JADE) -t sgml -c ../${CATALOG} -d ${DSSSL_HTML} ../${DOCFILE} > /dev/null; cp book1.html index.html; cd ..; GZIP='-9' tar czf html.tar.gz html)
+html.tar.gz: $(DOCFILES) Makefile 
+       @rm -rf html
+       @mkdir html
+       @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output html/ html_chunk.xsl $(DOCFILE)
+       @GZIP='-9' tar czf html.tar.gz html 
 
-.PHONY: tex
-tex: ${TEXFILE}
+.PHONY: fo
+fo: ${FOFILE}
 
-${TEXFILE}: ${DOCFILES}
-       @$(CHECK)
-       @$(JADE) -t tex -c ${CATALOG} -d ${DSSSL_PRINT} ${DOCFILE} > /dev/null
+${FOFILE}: $(DOCFILES) Makefile 
+       @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output $(FOFILE) fo.xsl $(DOCFILE)
 
 .PHONY: pdf
 pdf: ${PDFFILE}
 
-${PDFFILE}: ${DOCFILES}
-       @$(JADE) -t tex -c ${CATALOG} -d ${DSSSL_PRINT} ${DOCFILE} > /dev/null
-       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
-       @pdfjadetex -interaction=batchmode '\pdfcompresslevel=9' '\input ${TEXFILE}' > /dev/null
+${PDFFILE}: ${DOCFILES} Makefile
+       @$(MAKE) fo
+       @fop $(FOFILE) -pdf $(PDFFILE) > /dev/null
 
 .PHONY: dvi
 dvi: ${DVIFILE}
 
-${DVIFILE}: ${TEXFILE}
-       @jadetex ${TEXFILE} > /dev/null
-       @jadetex ${TEXFILE} > /dev/null
-       @jadetex ${TEXFILE} > /dev/null
-       @jadetex ${TEXFILE} > /dev/null
-
 .PHONY: ps
 ps: ${PSFILE}
 
-${PSFILE}: ${DVIFILE}
-       @dvips -o ${PSFILE} ${DVIFILE} > /dev/null
+${PSFILE}: ${DOCFILES} Makefile
+       @$(MAKE) fo
+       @fop $(FOFILE) -ps $(PSFILE) > /dev/null
+
+
+.PHONY: txt
+txt: ${TXTFILE}
+
+${TXTFILE}: ${FOFILE}
+       @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 -f ${TMPFILES}
-       @rm -f  ${DVIFILE} ${TEXFILE}
+       @rm -rf html ${PSFILE} ${HTMLFILE}
+       @rm -f ${TMPFILES} ${FOFILE}
+       @rm -f  ${DVIFILE} ${TXTFILE}
 
 .PHONY: distclean
 distclean: clean