# FP_GEN_DOCBOOK_XML
# ------------------
# Generates a DocBook XML V4.2 document in conftest.xml.
+#
+# It took a lot of experimentation to find a document that will cause
+# xsltproc to fail with an error code when the relevant
+# stylesheets/DTDs are not found. I couldn't make xsltproc fail with
+# a single-file document, it seems a multi-file document is needed.
+# -- SDM 2009-06-03
+#
AC_DEFUN([FP_GEN_DOCBOOK_XML],
-[rm -f conftest.xml
+[rm -f conftest.xml conftest-book.xml
cat > conftest.xml << EOF
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [[
+<!ENTITY conftest-book SYSTEM "conftest-book.xml">
+]]>
<book id="test">
- <title>A DocBook Test Document</title>
+&conftest-book;
+</book>
+EOF
+cat >conftest-book.xml << EOF
+<?xml version="1.0" encoding="iso-8859-1"?>
+ <title>A DocBook “Test Document”</title>
<chapter id="id-one">
<title>A Chapter Title</title>
<para>This is a paragraph, referencing <xref linkend="id-two"/>.</para>
<title>Another Chapter Title</title>
<para>This is another paragraph, referencing <xref linkend="id-one"/>.</para>
</chapter>
-</book>
EOF
]) # FP_GEN_DOCBOOK_XML
+# FP_PROG_DBLATEX
+# ----------------
+# Sets the output variable DblatexCmd to the full path of dblatex,
+# which we use for building PDF and PS docs.
+# DblatexCmd is empty if dblatex could not be found.
+AC_DEFUN([FP_PROG_DBLATEX],
+[AC_PATH_PROG([DblatexCmd], [dblatex])
+if test -z "$DblatexCmd"; then
+ AC_MSG_WARN([cannot find dblatex in your PATH, you will not be able to build the PDF and PS documentation])
+fi
+])# FP_PROG_DBLATEX
+
+
# FP_PROG_XSLTPROC
# ----------------
# Sets the output variable XsltprocCmd to the full path of the XSLT processor
AC_DEFUN([FP_PROG_XSLTPROC],
[AC_PATH_PROG([XsltprocCmd], [xsltproc])
if test -z "$XsltprocCmd"; then
- AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the documentation])
+ AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the HTML documentation])
fi
])# FP_PROG_XSLTPROC
-# FP_DIR_DOCBOOK_XSL(XSL-DIRS)
+# FP_DOCBOOK_XSL
# ----------------------------
-# Check which of the directories XSL-DIRS contains DocBook XSL stylesheets. The
-# output variable DIR_DOCBOOK_XSL will contain the first usable directory or
-# will be empty if none could be found.
-AC_DEFUN([FP_DIR_DOCBOOK_XSL],
+# Check that we can process a DocBook XML document to HTML using xsltproc.
+AC_DEFUN([FP_DOCBOOK_XSL],
[AC_REQUIRE([FP_PROG_XSLTPROC])dnl
if test -n "$XsltprocCmd"; then
- AC_CACHE_CHECK([for DocBook XSL stylesheet directory], fp_cv_dir_docbook_xsl,
+ AC_CACHE_CHECK([for DocBook XSL stylesheet], fp_cv_dir_docbook_xsl,
[FP_GEN_DOCBOOK_XML
fp_cv_dir_docbook_xsl=no
- for fp_var in $1; do
- if $XsltprocCmd ${fp_var}/html/docbook.xsl conftest.xml > /dev/null 2>&1; then
- fp_cv_dir_docbook_xsl=$fp_var
- break
- fi
- done
+ if $XsltprocCmd --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl conftest.xml > /dev/null 2>&1; then
+ fp_cv_dir_docbook_xsl=yes
+ fi
rm -rf conftest*])
fi
if test x"$fp_cv_dir_docbook_xsl" = xno; then
AC_MSG_WARN([cannot find DocBook XSL stylesheets, you will not be able to build the documentation])
- DIR_DOCBOOK_XSL=
+ HAVE_DOCBOOK_XSL=NO
else
- DIR_DOCBOOK_XSL=$fp_cv_dir_docbook_xsl
+ HAVE_DOCBOOK_XSL=YES
fi
-AC_SUBST([DIR_DOCBOOK_XSL])
-])# FP_DIR_DOCBOOK_XSL
+AC_SUBST([HAVE_DOCBOOK_XSL])
+])# FP_DOCBOOK_XSL
# FP_PROG_XMLLINT
if test -n "$XmllintCmd"; then
AC_MSG_CHECKING([for DocBook DTD])
FP_GEN_DOCBOOK_XML
- if $XmllintCmd --valid --noout conftest.xml > /dev/null 2>&1; then
+ if $XmllintCmd --nonet --valid --noout conftest.xml ; then
AC_MSG_RESULT([ok])
else
AC_MSG_RESULT([failed])
])# FP_PROG_FOP
-# FP_PROG_FO_PROCESSOR
-# --------------------
-# Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so
-# try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and
-# PdfxmltexCmd.
-AC_DEFUN([FP_PROG_FO_PROCESSOR],
-[AC_REQUIRE([FP_PROG_FOP])
-AC_PATH_PROG([XmltexCmd], [xmltex])
-AC_PATH_PROG([DvipsCmd], [dvips])
-if test -z "$FopCmd"; then
- if test -z "$XmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI or PostScript documentation])
- else
- if test -z "$DvipsCmd"; then
- AC_MSG_WARN([cannot find a DVI => PS converter, you will not be able to build PostScript documentation])
- fi
- fi
- AC_PATH_PROG([PdfxmltexCmd], [pdfxmltex])
- if test -z "$PdfxmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => PDF converter, you will not be able to build PDF documentation])
- fi
-elif test -z "$XmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI documentation])
+# FP_PROG_HSTAGS
+# ----------------
+# Sets the output variable HstagsCmd to the full Haskell tags program path.
+# HstagsCmd is empty if no such program could be found.
+AC_DEFUN([FP_PROG_HSTAGS],
+[AC_PATH_PROG([HstagsCmd], [hasktags])
+if test -z "$HstagsCmd"; then
+ AC_MSG_WARN([cannot find hasktags in your PATH, you will not be able to build the tags])
fi
-])# FP_PROG_FO_PROCESSOR
+])# FP_PROG_HSTAGS
# FP_PROG_GHC_PKG
AC_MSG_CHECKING(for path to top of build tree)
dnl This would be
-dnl make -C utils/pwd clean && make -C utils/pwd
+dnl make -C utils/ghc-pwd clean && make -C utils/ghc-pwd
dnl except we don't want to have to know what make is called. Sigh.
-if test ! -f utils/pwd/pwd && test ! -f utils/pwd/pwd.exe; then
- cd utils/pwd
+if test ! -f utils/ghc-pwd/ghc-pwd && test ! -f utils/ghc-pwd/ghc-pwd.exe; then
+ cd utils/ghc-pwd
rm -f *.o
rm -f *.hi
- rm -f pwd
- rm -f pwd.exe
- $WithGhc -v0 --make pwd -o pwd
+ rm -f ghc-pwd
+ rm -f ghc-pwd.exe
+ $WithGhc -v0 --make ghc-pwd -o ghc-pwd
cd ../..
fi
-hardtop=`utils/pwd/pwd`
+hardtop=`utils/ghc-pwd/ghc-pwd`
if ! test -d "$hardtop"; then
AC_MSG_ERROR([cannot determine current directory])