+##############################################################################
# FILE IDENTIFICATION
#
# Name: Makefile
# Programer: Kevin M. Rosenberg
# Date Started: Mar 2002
#
-# CVS Id: $Id: Makefile,v 1.4 2002/03/10 17:43:56 kevin Exp $
+# CVS Id: $Id$
#
-# Copyright (c) 2002 by Kevin M. Rosenberg
+# This file, part of UFFI, is Copyright (c) 2002-2003 by Kevin M. Rosenberg
#
-# This file is part of UFFI.
-#
-# UFFI is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License (version 2) as
-# published by the Free Software Foundation.
-#
-# UFFI is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with UFFI; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-# Set to DSSSL
-# For RedHat 6.x
-#DSSSL_HTML=/usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl
-#DSSL_PRINT=/usr/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl
+# UFFI 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.
+##############################################################################
-# For RedHat 7.2
-#DSSSL_HTML=/usr/share/sgml/docbook/dsssl-stylesheets-1.64/html/docbook.dsl
-#DSSSL_PRINT=/usr/share/sgml/docbook/dsssl-stylesheets-1.64/print/docbook.dsl
+DOCFILE_BASE_DEFAULT:=uffi
+DOCFILE_EXT_DEFAULT:=xml
-# Latest version
-DSSSL_HTML=/usr/share/sgml/docbook/dsssl-stylesheets-1.76/html/docbook.dsl
-DSSSL_PRINT=/usr/share/sgml/docbook/dsssl-stylesheets-1.76/print/docbook.dsl
-# Custom version
-#DSSSL_HTML=/home/kevin/lisp/docbook/html/lisp.dsl
-#DSSSL_PRINT=/home/kevin/lisp/docbook/print/lisp.dsl
-
-# Nothing to configure beyond this point
+# Standard docfile processing
-DOCFILE_BASE_DEFAULT=uffi
-DOCFILE_EXT_DEFAULT=sgml
+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}
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
+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
-dist-doc: html pdf
- @rm -f ${DVIFILE} ${PSFILE} ${TEXFILE}
- @rm -f *~
+.PHONY: all
+all: html pdf
-all: html pdf ps dvi
+.PHONY: dist
+dist: html pdf
+.PHONY: doc
+doc: html pdf
+
+.PHONY: check
check:
- nsgmls -s -C catalog || exit 1
+ @echo "Operating System Detected: ${OS}"
+ @$(CHECK)
+
+.PHONY: html
+html: html.tar.gz
-html: check ${DOCFILE}
- ( rm -rf html ; mkdir html; cd html ; jade -t sgml -c ../catalog -d ${DSSSL_HTML} ../${DOCFILE}; mv book1.htm manual.htm; cd ..)
+html.tar.gz: $(DOCFILES) Makefile
+ @rm -rf html
+ @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
-tex: ${TEXFILE}
+.PHONY: fo
+fo: ${FOFILE}
-${TEXFILE}: check ${DOCFILE}
- jade -t tex -c catalog -d ${DSSSL_PRINT} ${DOCFILE}
+${FOFILE}: $(DOCFILES) Makefile
+ @XML_CATALOG_FILES="$(CATALOG)" xsltproc --xinclude --output $(FOFILE) fo.xsl $(DOCFILE)
+.PHONY: pdf
pdf: ${PDFFILE}
-${PDFFILE}: ${TEXFILE}
- pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}'
- pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}'
- pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}'
- pdfjadetex '\pdfcompresslevel=9' '\input ${TEXFILE}'
- @rm -f ${TMPFILES}
+${PDFFILE}: ${DOCFILES} Makefile
+ @$(MAKE) fo
+ @fop $(FOFILE) -pdf $(PDFFILE) > /dev/null
+.PHONY: dvi
dvi: ${DVIFILE}
-${DVIFILE}: ${TEXFILE}
- jadetex ${TEXFILE}
- jadetex ${TEXFILE}
- jadetex ${TEXFILE}
- jadetex ${TEXFILE}
- @rm -f ${TMPFILES}
-
+.PHONY: ps
ps: ${PSFILE}
-${PSFILE}: ${DVIFILE}
- dvips -o ${PSFILE} ${DVIFILE}
+${PSFILE}: ${DOCFILES} Makefile
+ @$(MAKE) fo
+ @fop $(FOFILE) -ps $(PSFILE) > /dev/null
-clean:
- @rm -rf html
- @rm -f ${PSFILE} ${PDFFILE} ${DVIFILE} ${TEXFILE}
- @rm -f ${TMPFILE}
-realclean: clean
- @rm -f *~
+.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} ${HTMLFILE}
+ @rm -f ${TMPFILES} ${FOFILE}
+ @rm -f ${DVIFILE} ${TXTFILE}
+.PHONY: distclean
+distclean: clean