#!/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 \ /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" 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)" _fake_docbook_xsl=yes 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." if test -n "$_catalog" then _xsltcommand="xsltproc --catalogs -o \$\$1 \$\$2 \$\$3" else _xsltcommand="xsltproc -o \$\$1 \$\$2 \$\$3" fi else echo "Found xsltproc but no stylesheets on your system." echo "xsltproc is unusable without stylesheets." fi fi echo "Searching for XML checker..." for _try_xmllint in xmllint do if command -v $_try_xmllint > /dev/null 2>&1 then echo "Found $_try_xmllint" if test -n "$_catalog" then _xmllint_command="$_try_xmllint --noout --noent --postvalid --catalogs \$*" else _xmllint_command="$_try_xmllint --noout --noent --postvalid \$*" fi break fi done if test -z "$_xmllint_command" then echo "Not found" _xmllint_command=true fi cat > xml.mak << EOF CATALOG = $_catalog XMLLINT_COMMAND = $_xmllint_command XSLT_COMMAND = $_xsltcommand EOF