1dnl AS_DOCBOOK([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) 2dnl checks if xsltproc can build docbook documentation 3dnl (which is possible if the catalog is set up properly 4dnl I also tried checking for a specific version and type of docbook 5dnl but xsltproc seemed to happily run anyway, so we can't check for that 6dnl and version 7dnl this macro takes inspiration from 8dnl http://www.movement.uklinux.net/docs/docbook-autotools/configure.html 9AC_DEFUN([AS_DOCBOOK], 10[ 11 XSLTPROC_FLAGS=--nonet 12 DOCBOOK_ROOT= 13 TYPE_LC=xml 14 TYPE_UC=XML 15 DOCBOOK_VERSION=4.1.2 16 17 if test -n "$XML_CATALOG_FILES"; then 18 oldIFS=$IFS 19 IFS=' ' 20 for xml_catalog_file in $XML_CATALOG_FILES; do 21 if test -f $xml_catalog_file; then 22 XML_CATALOG=$xml_catalog_file 23 CAT_ENTRY_START='<!--' 24 CAT_ENTRY_END='-->' 25 break 26 fi 27 done 28 IFS=$oldIFS 29 elif test ! -f /etc/xml/catalog; then 30 for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ; 31 do 32 if test -d "$i"; then 33 DOCBOOK_ROOT=$i 34 fi 35 done 36 else 37 XML_CATALOG=/etc/xml/catalog 38 CAT_ENTRY_START='<!--' 39 CAT_ENTRY_END='-->' 40 fi 41 42 dnl We need xsltproc to process the test 43 AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,) 44 XSLTPROC_WORKS=no 45 if test -n "$XSLTPROC"; then 46 AC_MSG_CHECKING([whether xsltproc docbook processing works]) 47 48 if test -n "$XML_CATALOG"; then 49 DB_FILE="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" 50 else 51 DB_FILE="$DOCBOOK_ROOT/xhtml/docbook.xsl" 52 fi 53 $XSLTPROC $XSLTPROC_FLAGS $DB_FILE >/dev/null 2>&1 << END 54<?xml version="1.0" encoding='ISO-8859-1'?> 55<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook $TYPE_UC V$DOCBOOK_VERSION//EN" "http://www.oasis-open.org/docbook/$TYPE_LC/$DOCBOOK_VERSION/docbookx.dtd"> 56<book id="test"> 57</book> 58END 59 if test "$?" = 0; then 60 XSLTPROC_WORKS=yes 61 fi 62 AC_MSG_RESULT($XSLTPROC_WORKS) 63 fi 64 65 if test "x$XSLTPROC_WORKS" = "xyes"; then 66 dnl execute ACTION-IF-FOUND 67 ifelse([$1], , :, [$1]) 68 else 69 dnl execute ACTION-IF-NOT-FOUND 70 ifelse([$2], , :, [$2]) 71 fi 72 73 AC_SUBST(XML_CATALOG) 74 AC_SUBST(XSLTPROC_FLAGS) 75 AC_SUBST(DOCBOOK_ROOT) 76 AC_SUBST(CAT_ENTRY_START) 77 AC_SUBST(CAT_ENTRY_END) 78]) 79