blob: 88d2e08e46db8eebb4534f6c9a643e320000fa3c [file] [log] [blame]
dnl SPDX-License-Identifier: GPL-2.0-or-later
dnl Copyright (c) 2020 Petr Vorel <pvorel@suse.cz>
AC_DEFUN([LTP_CHECK_METADATA_GENERATOR_ASCIIDOCTOR], [
AC_MSG_NOTICE(checking asciidoctor as metadata generator)
AC_PATH_TOOL(asciidoctor, "asciidoctor")
metadata_generator_html=$asciidoctor
# pdf requires both asciidoctor and asciidoctor-pdf
if test "x$metadata_generator_html" != x; then
AC_PATH_TOOL(asciidoctor_pdf, "asciidoctor-pdf")
metadata_generator_pdf=$asciidoctor_pdf
fi
])
AC_DEFUN([LTP_CHECK_METADATA_GENERATOR_ASCIIDOC], [
AC_MSG_NOTICE(checking asciidoc as metadata generator)
AC_PATH_TOOL(a2x, "a2x")
if test "x$a2x" != x; then
version="`$a2x --version | cut -d ' ' -f2 `"
AX_COMPARE_VERSION([$version], lt, 9, [
AC_MSG_WARN([a2x unsupported version: $version. Use a2x >= 9])
a2x=
])
fi
metadata_generator_html=$a2x
# pdf requires both asciidoc and dblatex
if test "x$metadata_generator_html" != x; then
AC_PATH_TOOL(dblatex, "dblatex")
metadata_generator_pdf=$dblatex
fi
])
AC_DEFUN([LTP_DOCPARSE], [
with_metadata=no
with_metadata_html=no
with_metadata_pdf=no
if test "x$enable_metadata" = xyes && test "x$enable_metadata_html" = xyes -o "x$enable_metadata_pdf" = xyes; then
AX_PROG_PERL_MODULES(Cwd File::Basename JSON LWP::Simple)
fi
if test "x$ax_perl_modules_failed" = x0; then
if test "x$with_metadata_generator" = xasciidoctor -o "x$with_metadata_generator" = xdetect; then
LTP_CHECK_METADATA_GENERATOR_ASCIIDOCTOR
elif test "x$with_metadata_generator" = xasciidoc; then
LTP_CHECK_METADATA_GENERATOR_ASCIIDOC
else
AC_MSG_ERROR([invalid metadata generator '$with_metadata_generator', use --with-metadata-generator=asciidoc|asciidoctor])
fi
# autodetection: check also Asciidoc
if test "x$with_metadata_generator" = xdetect; then
with_metadata_generator='asciidoctor'
# problems with Asciidoctor: (html enabled && not found) || (pdf enabled && not found) => try Asciidoc
if test "x$enable_metadata_html" = xyes -a "x$metadata_generator_html" = x ||
test "x$enable_metadata_pdf" = xyes -a "x$metadata_generator_pdf" = x; then
backup_html="$metadata_generator_html"
backup_pdf="$metadata_generator_pdf"
AC_MSG_NOTICE(missing some dependencies for Asciidoctor => trying Asciidoc)
with_metadata_generator='asciidoc'
LTP_CHECK_METADATA_GENERATOR_ASCIIDOC
# prefer Asciidoctor if it's not worse than Asciidoc
# (html not enabled || asciidoctor html found || asciidoc html not found) && (pdf ...)
if test "x$enable_metadata_html" != xyes -o "x$backup_html" != x -o "x$metadata_generator_html" = x &&
test "x$enable_metadata_pdf" != xyes -o "x$backup_pdf" != x -o "x$metadata_generator_pdf" = x; then
with_metadata_generator='asciidoctor'
metadata_generator_html="$backup_html"
metadata_generator_pdf="$backup_pdf"
fi
fi
if test "x$metadata_generator_html" != x -o "x$metadata_generator_pdf" != x; then
AC_MSG_NOTICE(choosing $with_metadata_generator for metadata generation)
fi
fi
if test "x$enable_metadata_html" = xno; then
AC_MSG_NOTICE(HTML metadata generation disabled)
elif test "x$metadata_generator_html" != x; then
with_metadata_html=yes
fi
if test "x$enable_metadata_pdf" = xno; then
AC_MSG_NOTICE(PDF metadata generation disabled)
elif test "x$metadata_generator_pdf" != x; then
with_metadata_pdf=yes
fi
fi
reason="metadata generation skipped due missing suitable generator"
hint="specify correct generator with --with-metadata-generator=asciidoc|asciidoctor or use --disable-metadata|--disable-metadata-html|--disable-metadata-pdf"
if test -z "$ax_perl_modules_failed"; then
AC_MSG_NOTICE(metadata generation disabled)
elif test "x$ax_perl_modules_failed" = x1; then
AC_MSG_WARN(metadata generation skipped due missing required Perl modules)
elif test "x$with_metadata_html" = xno -a "x$with_metadata_pdf" = xno; then
AC_MSG_WARN([$reason, $hint])
else
with_metadata=yes
AC_SUBST(METADATA_GENERATOR, $with_metadata_generator)
if test "x$with_metadata_html" = xno -a "x$enable_metadata_html" = xyes; then
AC_MSG_WARN([HTML $reason, $hint])
fi
if test "x$with_metadata_pdf" = xno -a "x$enable_metadata_pdf" = xyes; then
AC_MSG_WARN([PDF $reason, $hint])
fi
fi
AC_SUBST(WITH_METADATA, $with_metadata)
AC_SUBST(WITH_METADATA_HTML, $with_metadata_html)
AC_SUBST(WITH_METADATA_PDF, $with_metadata_pdf)
])