]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
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 ba3084cd8e2e164289f1bcfa546535cd0640f68a..fb62691e9e086806e68eae9d67c918f81a056466 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 d442707fc640d4669c758cc4a560bb2c2cb09e37..e9ada21fc17db0268b8323c2b132f9afb74102f8 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 7d82c76f836968e0a9b026728a07f9254db14f5e..91057699b796acb62f52477573e6b1274d0a4685 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 40608a7c4f290cf8133388c894fe35353f8ef233..3b899ce661a9f13a456ce540abc6aa18955f6f33 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
+])