Blame common/m4/as-docbook.m4

Packit Service 0057d1
dnl AS_DOCBOOK([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
Packit Service 0057d1
dnl checks if xsltproc can build docbook documentation
Packit Service 0057d1
dnl (which is possible if the catalog is set up properly
Packit Service 0057d1
dnl I also tried checking for a specific version and type of docbook
Packit Service 0057d1
dnl but xsltproc seemed to happily run anyway, so we can't check for that
Packit Service 0057d1
dnl and version
Packit Service 0057d1
dnl this macro takes inspiration from
Packit Service 0057d1
dnl http://www.movement.uklinux.net/docs/docbook-autotools/configure.html
Packit Service 0057d1
AC_DEFUN([AS_DOCBOOK],
Packit Service 0057d1
[
Packit Service 0057d1
  XSLTPROC_FLAGS=--nonet
Packit Service 0057d1
  DOCBOOK_ROOT=
Packit Service 0057d1
  TYPE_LC=xml
Packit Service 0057d1
  TYPE_UC=XML
Packit Service 0057d1
  DOCBOOK_VERSION=4.1.2
Packit Service 0057d1
Packit Service 0057d1
  if test -n "$XML_CATALOG_FILES"; then
Packit Service 0057d1
    oldIFS=$IFS
Packit Service 0057d1
    IFS=' '
Packit Service 0057d1
    for xml_catalog_file in $XML_CATALOG_FILES; do
Packit Service 0057d1
      if test -f $xml_catalog_file; then
Packit Service 0057d1
        XML_CATALOG=$xml_catalog_file
Packit Service 0057d1
        CAT_ENTRY_START='
Packit Service 0057d1
        CAT_ENTRY_END='-->'
Packit Service 0057d1
        break
Packit Service 0057d1
      fi
Packit Service 0057d1
    done
Packit Service 0057d1
    IFS=$oldIFS
Packit Service 0057d1
  elif test ! -f /etc/xml/catalog; then
Packit Service 0057d1
    for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ;
Packit Service 0057d1
    do
Packit Service 0057d1
      if test -d "$i"; then
Packit Service 0057d1
        DOCBOOK_ROOT=$i
Packit Service 0057d1
      fi
Packit Service 0057d1
    done
Packit Service 0057d1
  else
Packit Service 0057d1
    XML_CATALOG=/etc/xml/catalog
Packit Service 0057d1
    CAT_ENTRY_START='
Packit Service 0057d1
    CAT_ENTRY_END='-->'
Packit Service 0057d1
  fi
Packit Service 0057d1
Packit Service 0057d1
  dnl We need xsltproc to process the test
Packit Service 0057d1
  AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,)
Packit Service 0057d1
  XSLTPROC_WORKS=no
Packit Service 0057d1
  if test -n "$XSLTPROC"; then
Packit Service 0057d1
    AC_MSG_CHECKING([whether xsltproc docbook processing works])
Packit Service 0057d1
Packit Service 0057d1
    if test -n "$XML_CATALOG"; then
Packit Service 0057d1
      DB_FILE="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
Packit Service 0057d1
    else
Packit Service 0057d1
      DB_FILE="$DOCBOOK_ROOT/xhtml/docbook.xsl"
Packit Service 0057d1
    fi
Packit Service 0057d1
    $XSLTPROC $XSLTPROC_FLAGS $DB_FILE >/dev/null 2>&1 << END
Packit Service 0057d1
Packit Service 0057d1
Packit Service 0057d1
<book id="test">
Packit Service 0057d1
</book>
Packit Service 0057d1
END
Packit Service 0057d1
    if test "$?" = 0; then
Packit Service 0057d1
      XSLTPROC_WORKS=yes
Packit Service 0057d1
    fi
Packit Service 0057d1
    AC_MSG_RESULT($XSLTPROC_WORKS)
Packit Service 0057d1
  fi
Packit Service 0057d1
Packit Service 0057d1
  if test "x$XSLTPROC_WORKS" = "xyes"; then
Packit Service 0057d1
    dnl execute ACTION-IF-FOUND
Packit Service 0057d1
    ifelse([$1], , :, [$1])
Packit Service 0057d1
  else
Packit Service 0057d1
    dnl execute ACTION-IF-NOT-FOUND
Packit Service 0057d1
    ifelse([$2], , :, [$2])
Packit Service 0057d1
  fi
Packit Service 0057d1
Packit Service 0057d1
  AC_SUBST(XML_CATALOG)
Packit Service 0057d1
  AC_SUBST(XSLTPROC_FLAGS)
Packit Service 0057d1
  AC_SUBST(DOCBOOK_ROOT)
Packit Service 0057d1
  AC_SUBST(CAT_ENTRY_START)
Packit Service 0057d1
  AC_SUBST(CAT_ENTRY_END)
Packit Service 0057d1
])