#!/bin/sh # Script to check for catalogs, stylesheets, XSL processors and all # the other stuff necessary to convert the XML documentation. echo "Searching for XML catalogs..." for try_catalog in \ /etc/sgml/catalog \ /usr/share/xml/docbook/*/catalog.xml \ /opt/local/share/xml/docbook-xml/*/catalog.xml \ /opt/local/share/xml/docbook/*/catalog.xml \ /usr/share/sgml/docbook/*/*catalog \ /usr/share/apps/ksgmltools2/customization/en/catalog \ /usr/share/sgml/catalog \ /usr/local/share/sgml/catalog \ /usr/lib/sgml/catalog \ /usr/local/lib/sgml/catalog \ /usr/share/docbook-xml42/catalog.xml \ /usr/share/sgml/docbook/xmlcatalog do if test -f "$try_catalog"; then catalog=$try_catalog break fi done if test -n "$catalog"; then echo "Found SGML catalog at $catalog" catalog_opts=--catalogs else echo "No SGML catalog found." fi echo "Searching for stylesheets..." echo "Searching for html/chunk.xsl..." for try_chunk_xsl in \ /usr/share/xml/docbook/*/html/chunk.xsl \ /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl \ /usr/share/sgml/docbook/yelp/docbook/html/chunk.xsl \ /usr/local/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl \ /usr/local/share/sgml/docbook/yelp/docbook/html/chunk.xsl \ /usr/share/docbook-xsl/html/chunk.xsl \ /usr/share/sgml/docbook/xsl-stylesheets*/html/chunk.xsl \ /usr/share/xml/docbook/stylesheet/nwalsh/current/html/chunk.xsl \ /opt/local/share/xsl/docbook-xsl/html/chunk.xsl \ do if test -f "$try_chunk_xsl"; then chunk_xsl=$try_chunk_xsl break fi done if test -z "$chunk_xsl"; then chunk_xsl=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl echo "Not found. Using default ($chunk_xsl)" fake_chunk_xsl=yes else echo "Found chunk.xsl at $chunk_xsl" fi echo "Searching for html/docbook.xsl..." for try_docbook_xsl in \ /usr/share/xml/docbook/*/html/docbook.xsl \ /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl \ /usr/share/sgml/docbook/yelp/docbook/html/docbook.xsl \ /usr/local/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl \ /usr/local/share/sgml/docbook/yelp/docbook/html/docbook.xsl \ /usr/share/docbook-xsl/html/docbook.xsl \ /usr/share/sgml/docbook/xsl-stylesheets*/html/docbook.xsl \ /usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl \ /opt/local/share/xsl/docbook-xsl/html/docbook.xsl \ do if test -f "$try_docbook_xsl"; then docbook_xsl=$try_docbook_xsl break fi done if test -z "$docbook_xsl"; then docbook_xsl=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/docbook.xsl echo "Not found. Using default ($docbook_xsl)" else echo "Found docbook.xsl at $docbook_xsl" fi cat > html-chunk.xsl << EOF EOF cat > html-single.xsl << EOF EOF echo "Searching for DTD..." #FIXME: This should prefer higher version numbers, not the other way around .. for try_dtd in \ /usr/share/xml/docbook/*/dtd/4*/docbookx.dtd \ /usr/share/xml/docbook/*/docbookx.dtd \ /usr/share/sgml/docbook/*/docbookx.dtd \ /usr/share/sgml/docbook/dtd/*/docbookx.dtd \ /usr/share/sgml/docbook/dtd/xml/*/docbookx.dtd \ /usr/share/docbook-xml*/docbookx.dtd \ /opt/local/share/xml/docbook*/*/docbookx.dtd \ /usr/share/apps/ksgmltools2/docbook/*/docbookx.dtd do if test -f "$try_dtd"; then dtd=$try_dtd break fi done if test -z "$dtd"; then dtd=/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd echo "Not found. Using default ($dtd)." else echo "Found docbookx.dtd at $dtd" fi for lang in `grep 'DOC_LANGS =' ../../config.mak|cut -d= -f2`; do cat > $lang/main.xml << EOF ' >> $lang/main.xml done cat >> $lang/main.xml << EOF ]> &documentation.xml; EOF done echo "Looking for a valid XSLT processor..." if xsltproc --version > /dev/null 2>&1; then if test -z "$fake_chunk_xsl"; then echo "Found xsltproc. If it works, it's probably the best choice." xsltcommand="xsltproc $catalog_opts -o \$\$1 \$\$2 \$\$3" else echo "Found xsltproc but no stylesheets on your system." echo "xsltproc is unusable without stylesheets." fi fi cat > xml.mak << EOF CATALOG = $catalog XMLLINT_COMMAND = xmllint --noout --noent --postvalid $catalog_opts \$* XSLT_COMMAND = $xsltcommand EOF