136 lines
5 KiB
Text
136 lines
5 KiB
Text
dnl Check for tools used in generation of documentation final-format files
|
|
dnl such as the basically required MAN, and optional HTML (single or chunked).
|
|
dnl On success, set nut_have_asciidoc="yes" (meaning we can do at least some
|
|
dnl documentation generation) and lots of automake macros and configure vars.
|
|
dnl On failure, set nut_have_asciidoc="no" (meaning we can't generate even a
|
|
dnl manpage, which is a requirement for proceeding to the other formats).
|
|
dnl This macro can be run multiple times, but will do the checking only once.
|
|
dnl Also note that this routine currently only checks the basic presence (and
|
|
dnl versions) of the required software; the configure script has additional
|
|
dnl functional checks (ability to build doc files) based on --with-doc request
|
|
dnl so as to not waste time on doc-types not requested by maintainer, and done
|
|
dnl in ways more intimate to NUT (using its tracked docs).
|
|
|
|
AC_DEFUN([NUT_CHECK_ASCIIDOC],
|
|
[
|
|
if test -z "${nut_have_asciidoc_seen}"; then
|
|
nut_have_asciidoc_seen=yes
|
|
# Note: this is for both asciidoc and a2x at this time
|
|
ASCIIDOC_MIN_VERSION="8.6.3"
|
|
# Note: this is checked in the configure script if PDF is of interest at all
|
|
DBLATEX_MIN_VERSION="0.2.5"
|
|
|
|
AC_PATH_PROGS([ASCIIDOC], [asciidoc])
|
|
if test -n "${ASCIIDOC}"; then
|
|
AC_MSG_CHECKING([for asciiDoc version])
|
|
ASCIIDOC_VERSION="`${ASCIIDOC} --version 2>/dev/null`"
|
|
dnl strip 'asciidoc ' from version string
|
|
ASCIIDOC_VERSION="${ASCIIDOC_VERSION##* }"
|
|
AC_MSG_RESULT(${ASCIIDOC_VERSION} found)
|
|
fi
|
|
AM_CONDITIONAL([MANUALUPDATE], [test -n "${ASCIIDOC}"])
|
|
|
|
AC_PATH_PROGS([A2X], [a2x])
|
|
if test -n "${A2X}"; then
|
|
AC_MSG_CHECKING([for a2x version])
|
|
A2X_VERSION="`${A2X} --version 2>/dev/null`"
|
|
dnl strip 'a2x ' from version string
|
|
A2X_VERSION="${A2X_VERSION##* }"
|
|
AC_MSG_RESULT(${A2X_VERSION} found)
|
|
fi
|
|
|
|
AC_PATH_PROGS([DBLATEX], [dblatex])
|
|
if test -n "${DBLATEX}"; then
|
|
AC_MSG_CHECKING([for dblatex version])
|
|
DBLATEX_VERSION="`${DBLATEX} --version 2>/dev/null`"
|
|
dnl strip 'dblatex version ' from version string
|
|
DBLATEX_VERSION="${DBLATEX_VERSION##* }"
|
|
AC_MSG_RESULT(${DBLATEX_VERSION} found)
|
|
fi
|
|
|
|
AC_PATH_PROGS([XSLTPROC], [xsltproc])
|
|
if test -n "${XSLTPROC}"; then
|
|
AC_MSG_CHECKING([for xsltproc version])
|
|
XSLTPROC_VERSION="`${XSLTPROC} --version 2>/dev/null`"
|
|
dnl strip 'xsltproc version ' from version string
|
|
XSLTPROC_VERSION="${XSLTPROC_VERSION##* }"
|
|
AC_MSG_RESULT(${XSLTPROC_VERSION} found)
|
|
fi
|
|
|
|
AC_PATH_PROGS([XMLLINT], [xmllint])
|
|
if test -n "${XMLLINT}"; then
|
|
AC_MSG_CHECKING([for xmllint version])
|
|
XMLLINT_VERSION="`${XMLLINT} --version 2>/dev/null`"
|
|
dnl strip 'xmllint version ' from version string
|
|
XMLLINT_VERSION="${XMLLINT_VERSION##* }"
|
|
if test -z "${XMLLINT_VERSION}" ; then
|
|
dnl Some releases also report what flags they were compiled with as
|
|
dnl part of the version info, so the last-line match finds nothing.
|
|
dnl Also some builds return version data to stderr.
|
|
XMLLINT_VERSION="`${XMLLINT} --version 2>&1 | grep version`"
|
|
XMLLINT_VERSION="${XMLLINT_VERSION##* }"
|
|
fi
|
|
AC_MSG_RESULT(${XMLLINT_VERSION} found)
|
|
fi
|
|
|
|
AC_PATH_PROGS([SOURCE_HIGHLIGHT], [source-highlight])
|
|
AM_CONDITIONAL([HAVE_SOURCE_HIGHLIGHT], [test -n "$SOURCE_HIGHLIGHT"])
|
|
|
|
dnl check for spell checking deps
|
|
AC_PATH_PROGS([ASPELL], [aspell])
|
|
AM_CONDITIONAL([HAVE_ASPELL], [test -n "$ASPELL"])
|
|
|
|
dnl Note that a common "nut_have_asciidoc" variable is in fact a flag
|
|
dnl that we have several tools needed for the documentation generation
|
|
dnl TODO? Rename the script variable and makefile flags to reflect this?
|
|
AC_MSG_CHECKING([if asciidoc version can build manpages (minimum required ${ASCIIDOC_MIN_VERSION})])
|
|
AX_COMPARE_VERSION([${ASCIIDOC_VERSION}], [ge], [${ASCIIDOC_MIN_VERSION}], [
|
|
AC_MSG_RESULT(yes)
|
|
nut_have_asciidoc="yes"
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
nut_have_asciidoc="no"
|
|
])
|
|
|
|
AC_MSG_CHECKING([if a2x version can build manpages (minimum required ${ASCIIDOC_MIN_VERSION})])
|
|
AX_COMPARE_VERSION([${A2X_VERSION}], [ge], [${ASCIIDOC_MIN_VERSION}], [
|
|
AC_MSG_RESULT(yes)
|
|
], [
|
|
AC_MSG_RESULT(no)
|
|
nut_have_asciidoc="no"
|
|
])
|
|
|
|
dnl TODO: test for docbook-xsl files (maybe build a test man page?)
|
|
dnl https://github.com/networkupstools/nut/issues/162
|
|
AC_MSG_CHECKING([if xsltproc is present (mandatory for man page regeneration)])
|
|
if test -n "${XSLTPROC}"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
nut_have_asciidoc="no"
|
|
fi
|
|
|
|
AC_MSG_CHECKING([if xmllint is present (mandatory for man page regeneration)])
|
|
if test -n "${XMLLINT}"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
nut_have_asciidoc="no"
|
|
fi
|
|
|
|
dnl Notes: we also keep HAVE_ASCIIDOC for implicit targets, such as manpage
|
|
dnl building
|
|
AM_CONDITIONAL([HAVE_ASCIIDOC], [test "${nut_have_asciidoc}" = "yes"])
|
|
|
|
AC_MSG_CHECKING([if we have all the tools mandatory for man page regeneration])
|
|
AC_MSG_RESULT([${nut_have_asciidoc}])
|
|
|
|
AC_MSG_CHECKING([if source-highlight is present (preferable for documentation generation)])
|
|
if test -n "${SOURCE_HIGHLIGHT}"; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
fi
|
|
])
|