view DOCS/xml/configure @ 31771:75398f13e9f6

cosmetics: Drop leading underscores from variable names.
author diego
date Wed, 28 Jul 2010 06:07:43 +0000
parents abfc5eb7af04
children ca68c0b0f4c4
line wrap: on
line source

#!/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
<?xml version="1.0" encoding="utf-8"?>
<!-- **************************************************
     This file is generated automatically. DO NOT EDIT.
     ************************************************** -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">

  <xsl:import href="$chunk_xsl"/>
  <xsl:include href="html-common.xsl"/>

</xsl:stylesheet>
EOF


cat > html-single.xsl << EOF
<?xml version="1.0" encoding="utf-8"?>
<!-- **************************************************
     This file is generated automatically. DO NOT EDIT.
     ************************************************** -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0">

  <xsl:import href="$docbook_xsl"/>
  <xsl:include href="html-common.xsl"/>

</xsl:stylesheet>
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
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- **************************************************
     This file is generated automatically. DO NOT EDIT.
     ************************************************** -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
    "$dtd"
[
EOF

  for file in `find $lang en -name \*.xml -exec basename \{\} \; | sort -u`; do
    echo '<!ENTITY '$file' SYSTEM "'$file'">' >> $lang/main.xml
  done

  cat >> $lang/main.xml << EOF
]>
<book id="index" lang="$lang">
&documentation.xml;
</book>
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..."
if command -v xmllint > /dev/null 2>&1; then
  echo "Found xmllint"
  if test -n "$catalog"; then
    xmllint_command="xmllint --noout --noent --postvalid --catalogs \$*"
  else
    xmllint_command="xmllint --noout --noent --postvalid \$*"
  fi
else
  echo "Not found"
  xmllint_command=true
fi

cat > xml.mak << EOF
CATALOG = $catalog
XMLLINT_COMMAND = $xmllint_command
XSLT_COMMAND = $xsltcommand
EOF