doc: prefer fop to generate pdf from docbook
authorchas williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Wed, 8 Jun 2011 13:40:17 +0000 (09:40 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Wed, 22 Jun 2011 18:01:53 +0000 (11:01 -0700)
It would seem xsltproc -> fop -> pdf is the "modern" way to generate
pdf from docbook now.  The hard part is finding the stylesheets.
This should work for fedora, sles and debian.  Additionally, it brings
some consistency--xsltproc for all the conversions.  You can still
override via configure options if you prefer something else.

Change-Id: Id779e9473a6759daddc9a61be714109b27da980e
Reviewed-on: http://gerrit.openafs.org/4821
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

acinclude.m4
doc/xml/AdminGuide/Makefile.in
doc/xml/QuickStartUnix/Makefile.in
doc/xml/UserGuide/Makefile.in
src/cf/search-dirlist.m4 [new file with mode: 0644]

index ba3084c..fb62691 100644 (file)
@@ -233,20 +233,29 @@ AC_ARG_ENABLE([linux-syscall-probing],
 AC_ARG_WITH([xslt-processor],
        AS_HELP_STRING([--with-xslt-processor=ARG],
        [which XSLT processor to use (possible choices are: libxslt, saxon, xalan-j, xsltproc)]),
-               XSLTPROC="$withval",
+               [XSLTPROC="$withval"],
        AC_CHECK_PROGS([XSLTPROC], [libxslt saxon xalan-j xsltproc], [echo]))
 
 AC_ARG_WITH([html-xsl], 
         AS_HELP_STRING([--with-html-xsl],
-       [build HTML documentation using Norman Walsh's DocBook XSL stylesheets (default is no; specify a path to chunk.xsl or docbook.xsl)]),
-       HTML_XSL="$withval",
-       HTML_XSL=no)
+       [build HTML documentation using this stylesheet (default is html/chunk.dsl; specify either html/chunk.xsl or html/docbook.xsl)]),
+       [HTML_XSL="$withval"],
+       [HTML_XSL="html/chunk.xsl"])
 
 AC_ARG_WITH([docbook2pdf],
        AS_HELP_STRING([--with-docbook2pdf=ARG],
-       [which Docbook to PDF utility to use (possible choices are: docbook2pdf, dblatex)]),
-               DOCBOOK2PDF="$withval",
-       AC_CHECK_PROGS([DOCBOOK2PDF], [docbook2pdf dblatex], [echo]))
+       [which Docbook to PDF utility to use (possible choices are: fop, docbook2pdf, dblatex)]),
+               [DOCBOOK2PDF="$withval"],
+       AC_CHECK_PROGS([DOCBOOK2PDF], [fop docbook2pdf dblatex], [echo]))
+
+AC_ARG_WITH([docbook-stylesheets],
+       AS_HELP_STRING([--with-docbook-stylesheets=ARG],
+       [location of DocBook stylesheets (default is to search a set of likely paths)]),
+               [DOCBOOK_STYLESHEETS="$withval"],
+       OPENAFS_SEARCH_DIRLIST([DOCBOOK_STYLESHEETS], [/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/xml/docbook/xsl-stylesheets /usr/share/sgml/docbook/docbook-xsl-stylesheets /usr/share/sgml/docbook/xsl-stylesheets /usr/share/docbook-xsl /usr/share/sgml/docbkxsl /usr/local/share/xsl/docbook /sw/share/xml/xsl/docbook-xsl /opt/local/share/xsl/docbook-xsl], [$HTML_XSL])
+       if test "x$DOCBOOK_STYLESHEETS" == "x"; then
+               AC_WARN([Docbook stylesheets not found; some documentation can't be built])
+       fi)
 
 enable_login="no"
 
@@ -1678,6 +1687,7 @@ AC_SUBST(IRIX_BUILD_IP35)
 AC_SUBST(HTML_XSL)
 AC_SUBST(XSLTPROC)
 AC_SUBST(DOCBOOK2PDF)
+AC_SUBST(DOCBOOK_STYLESHEETS)
 
 OPENAFS_OSCONF
 OPENAFS_FUSE
index d442707..e9ada21 100644 (file)
@@ -19,25 +19,31 @@ include @TOP_OBJDIR@/src/config/Makefile.config
 VERSFILE=version
 include @TOP_OBJDIR@/src/config/Makefile.version
 
-BOOK     = auagd000.xml
-SRCS     = $(BOOK) auagd005.xml auagd006.xml auagd007.xml auagd008.xml \
+BOOK     = auagd000
+SRCS     = $(BOOK).xml auagd005.xml auagd006.xml auagd007.xml auagd008.xml \
           auagd009.xml auagd010.xml auagd011.xml auagd012.xml auagd013.xml \
           auagd014.xml auagd015.xml auagd016.xml auagd017.xml auagd018.xml \
           auagd019.xml auagd020.xml auagd021.xml auagd022.xml auagd023.xml \
           auagd024.xml auagd025.xml
 HTML_XSL = @HTML_XSL@
+DOCBOOK_STYLESHEETS = @DOCBOOK_STYLESHEETS@
 XSLTPROC = @XSLTPROC@
 DOCBOOK2PDF = @DOCBOOK2PDF@
 
 html: $(SRCS) $(VERSFILE).xml
        $(XSLTPROC) --param navig.graphics 1 \
-           --stringparam navig.graphics.path ../ $(HTML_XSL) $(BOOK)
+           --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml
 
 pdf: $(SRCS) $(VERSFILE).xml
-       $(DOCBOOK2PDF) $(BOOK)
+       if test "x$(DOCBOOK2PDF)" = "xfop"; then \
+               $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \
+               $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \
+       else \
+               $(DOCBOOK2PDF) $(BOOK).xml; \
+       fi
 
 check:
-       xmllint --noout --valid $(BOOK)
+       xmllint --noout --valid $(BOOK).xml
 
 clean:
        rm -f *.html *.pdf
index 7d82c76..9105769 100644 (file)
@@ -19,22 +19,28 @@ include @TOP_OBJDIR@/src/config/Makefile.config
 VERSFILE=version
 include @TOP_OBJDIR@/src/config/Makefile.version
 
-BOOK     = auqbg000.xml
-SRCS     = $(BOOK) auqbg003.xml auqbg004.xml auqbg005.xml auqbg006.xml \
+BOOK     = auqbg000
+SRCS     = $(BOOK).xml auqbg003.xml auqbg004.xml auqbg005.xml auqbg006.xml \
           auqbg007.xml auqbg008.xml appendix.xml appendix_dafs.xml
 HTML_XSL = @HTML_XSL@
+DOCBOOK_STYLESHEETS = @DOCBOOK_STYLESHEETS@
 XSLTPROC = @XSLTPROC@
 DOCBOOK2PDF = @DOCBOOK2PDF@
 
 html: $(SRCS) $(VERSFILE).xml
        $(XSLTPROC) --param navig.graphics 1 \
-           --stringparam navig.graphics.path ../ $(HTML_XSL) $(BOOK)
+           --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml
 
 pdf: $(SRCS) $(VERSFILE).xml
-       $(DOCBOOK2PDF) $(BOOK)
+       if test "x$(DOCBOOK2PDF)" = "xfop"; then \
+               $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \
+               $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \
+       else \
+               $(DOCBOOK2PDF) $(BOOK).xml; \
+       fi
 
 check:
-       xmllint --noout --valid $(BOOK)
+       xmllint --noout --valid $(BOOK).xml
 
 clean:
        rm -f *.html *.pdf
index 40608a7..3b899ce 100644 (file)
@@ -19,23 +19,29 @@ include @TOP_OBJDIR@/src/config/Makefile.config
 VERSFILE=version
 include @TOP_OBJDIR@/src/config/Makefile.version
 
-BOOK     = auusg000.xml
-SRCS     = $(BOOK) auusg003.xml auusg004.xml auusg005.xml auusg006.xml \
+BOOK     = auusg000
+SRCS     = $(BOOK).xml auusg003.xml auusg004.xml auusg005.xml auusg006.xml \
           auusg007.xml auusg008.xml auusg009.xml auusg010.xml auusg011.xml \
           auusg012.xml
 HTML_XSL = @HTML_XSL@
+DOCBOOK_STYLESHEETS = @DOCBOOK_STYLESHEETS@
 XSLTPROC = @XSLTPROC@
 DOCBOOK2PDF = @DOCBOOK2PDF@
 
 html: $(SRCS) $(VERSFILE).xml
        $(XSLTPROC) --param navig.graphics 1 \
-           --stringparam navig.graphics.path ../ $(HTML_XSL) $(BOOK)
+           --stringparam navig.graphics.path ../ $(DOCBOOK_STYLESHEETS)/$(HTML_XSL) $(BOOK).xml
 
 pdf: $(SRCS) $(VERSFILE).xml
-       $(DOCBOOK2PDF) $(BOOK)
+       if test "x$(DOCBOOK2PDF)" = "xfop"; then \
+               $(XSLTPROC) $(DOCBOOK_STYLESHEETS)/fo/docbook.xsl $(BOOK).xml > $(BOOK).fo; \
+               $(DOCBOOK2PDF) $(BOOK).fo $(BOOK).pdf; \
+       else \
+               $(DOCBOOK2PDF) $(BOOK).xml; \
+       fi
 
 check:
-       xmllint --noout --valid $(BOOK)
+       xmllint --noout --valid $(BOOK).xml
 
 clean:
        rm -f *.html *.pdf
diff --git a/src/cf/search-dirlist.m4 b/src/cf/search-dirlist.m4
new file mode 100644 (file)
index 0000000..5b0f84f
--- /dev/null
@@ -0,0 +1,15 @@
+# OPENAFS_SEARCH_DIRLIST(VARIABLE, [PATHS TO SEARCH], [TARGET FILE])
+AC_DEFUN([OPENAFS_SEARCH_DIRLIST],
+[openafs_dirpath=no
+  for openafs_var in [$2]; do
+    if test -r "$openafs_var/[$3]"; then
+      openafs_dirpath=$openafs_var
+      break
+    fi
+  done
+  if test x"$openafs_dirpath" == xno; then
+    [$1]=
+  else
+    [$1]=$openafs_dirpath
+  fi
+])