From 137dd2349400a2e372f1f03e0bce327fffcb5e9e Mon Sep 17 00:00:00 2001 From: chas williams - CONTRACTOR Date: Wed, 8 Jun 2011 09:40:17 -0400 Subject: [PATCH] doc: prefer fop to generate pdf from docbook 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 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman --- acinclude.m4 | 24 +++++++++++++++++------- doc/xml/AdminGuide/Makefile.in | 16 +++++++++++----- doc/xml/QuickStartUnix/Makefile.in | 16 +++++++++++----- doc/xml/UserGuide/Makefile.in | 16 +++++++++++----- src/cf/search-dirlist.m4 | 15 +++++++++++++++ 5 files changed, 65 insertions(+), 22 deletions(-) create mode 100644 src/cf/search-dirlist.m4 diff --git a/acinclude.m4 b/acinclude.m4 index ba3084cd8..fb62691e9 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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 diff --git a/doc/xml/AdminGuide/Makefile.in b/doc/xml/AdminGuide/Makefile.in index d442707fc..e9ada21fc 100644 --- a/doc/xml/AdminGuide/Makefile.in +++ b/doc/xml/AdminGuide/Makefile.in @@ -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 diff --git a/doc/xml/QuickStartUnix/Makefile.in b/doc/xml/QuickStartUnix/Makefile.in index 7d82c76f8..91057699b 100644 --- a/doc/xml/QuickStartUnix/Makefile.in +++ b/doc/xml/QuickStartUnix/Makefile.in @@ -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 diff --git a/doc/xml/UserGuide/Makefile.in b/doc/xml/UserGuide/Makefile.in index 40608a7c4..3b899ce66 100644 --- a/doc/xml/UserGuide/Makefile.in +++ b/doc/xml/UserGuide/Makefile.in @@ -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 index 000000000..5b0f84fd3 --- /dev/null +++ b/src/cf/search-dirlist.m4 @@ -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 +]) -- 2.39.5