#!/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