1*49cdfc7eSAndroid Build Coastguard Workerdnl SPDX-License-Identifier: GPL-2.0-or-later 2*49cdfc7eSAndroid Build Coastguard Workerdnl Copyright (c) 2020 Petr Vorel <[email protected]> 3*49cdfc7eSAndroid Build Coastguard Worker 4*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFUN([LTP_CHECK_METADATA_GENERATOR_ASCIIDOCTOR], [ 5*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(checking asciidoctor as metadata generator) 6*49cdfc7eSAndroid Build Coastguard Worker AC_PATH_TOOL(asciidoctor, "asciidoctor") 7*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_html=$asciidoctor 8*49cdfc7eSAndroid Build Coastguard Worker # pdf requires both asciidoctor and asciidoctor-pdf 9*49cdfc7eSAndroid Build Coastguard Worker if test "x$metadata_generator_html" != x; then 10*49cdfc7eSAndroid Build Coastguard Worker AC_PATH_TOOL(asciidoctor_pdf, "asciidoctor-pdf") 11*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_pdf=$asciidoctor_pdf 12*49cdfc7eSAndroid Build Coastguard Worker fi 13*49cdfc7eSAndroid Build Coastguard Worker]) 14*49cdfc7eSAndroid Build Coastguard Worker 15*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFUN([LTP_CHECK_METADATA_GENERATOR_ASCIIDOC], [ 16*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(checking asciidoc as metadata generator) 17*49cdfc7eSAndroid Build Coastguard Worker AC_PATH_TOOL(a2x, "a2x") 18*49cdfc7eSAndroid Build Coastguard Worker if test "x$a2x" != x; then 19*49cdfc7eSAndroid Build Coastguard Worker version="`$a2x --version | cut -d ' ' -f2 `" 20*49cdfc7eSAndroid Build Coastguard Worker AX_COMPARE_VERSION([$version], lt, 9, [ 21*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_WARN([a2x unsupported version: $version. Use a2x >= 9]) 22*49cdfc7eSAndroid Build Coastguard Worker a2x= 23*49cdfc7eSAndroid Build Coastguard Worker ]) 24*49cdfc7eSAndroid Build Coastguard Worker fi 25*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_html=$a2x 26*49cdfc7eSAndroid Build Coastguard Worker # pdf requires both asciidoc and dblatex 27*49cdfc7eSAndroid Build Coastguard Worker if test "x$metadata_generator_html" != x; then 28*49cdfc7eSAndroid Build Coastguard Worker AC_PATH_TOOL(dblatex, "dblatex") 29*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_pdf=$dblatex 30*49cdfc7eSAndroid Build Coastguard Worker fi 31*49cdfc7eSAndroid Build Coastguard Worker]) 32*49cdfc7eSAndroid Build Coastguard Worker 33*49cdfc7eSAndroid Build Coastguard WorkerAC_DEFUN([LTP_DOCPARSE], [ 34*49cdfc7eSAndroid Build Coastguard Workerwith_metadata=no 35*49cdfc7eSAndroid Build Coastguard Workerwith_metadata_html=no 36*49cdfc7eSAndroid Build Coastguard Workerwith_metadata_pdf=no 37*49cdfc7eSAndroid Build Coastguard Worker 38*49cdfc7eSAndroid Build Coastguard Workerif test "x$enable_metadata" != xyes; then 39*49cdfc7eSAndroid Build Coastguard Worker enable_metadata_html=no 40*49cdfc7eSAndroid Build Coastguard Worker enable_metadata_pdf=no 41*49cdfc7eSAndroid Build Coastguard Worker with_metadata_generator=none 42*49cdfc7eSAndroid Build Coastguard Workerfi 43*49cdfc7eSAndroid Build Coastguard Worker 44*49cdfc7eSAndroid Build Coastguard Workerif test "x$enable_metadata_html" = xyes -o "x$enable_metadata_pdf" = xyes; then 45*49cdfc7eSAndroid Build Coastguard Worker AX_PROG_PERL_MODULES(Cwd File::Basename JSON LWP::Simple) 46*49cdfc7eSAndroid Build Coastguard Workerfi 47*49cdfc7eSAndroid Build Coastguard Worker 48*49cdfc7eSAndroid Build Coastguard Workerif test "x$ax_perl_modules_failed" = x0; then 49*49cdfc7eSAndroid Build Coastguard Worker if test "x$with_metadata_generator" = xasciidoctor -o "x$with_metadata_generator" = xdetect; then 50*49cdfc7eSAndroid Build Coastguard Worker LTP_CHECK_METADATA_GENERATOR_ASCIIDOCTOR 51*49cdfc7eSAndroid Build Coastguard Worker elif test "x$with_metadata_generator" = xasciidoc; then 52*49cdfc7eSAndroid Build Coastguard Worker LTP_CHECK_METADATA_GENERATOR_ASCIIDOC 53*49cdfc7eSAndroid Build Coastguard Worker else 54*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_ERROR([invalid metadata generator '$with_metadata_generator', use --with-metadata-generator=asciidoc|asciidoctor]) 55*49cdfc7eSAndroid Build Coastguard Worker fi 56*49cdfc7eSAndroid Build Coastguard Worker 57*49cdfc7eSAndroid Build Coastguard Worker # autodetection: check also Asciidoc 58*49cdfc7eSAndroid Build Coastguard Worker if test "x$with_metadata_generator" = xdetect; then 59*49cdfc7eSAndroid Build Coastguard Worker with_metadata_generator='asciidoctor' 60*49cdfc7eSAndroid Build Coastguard Worker # problems with Asciidoctor: (html enabled && not found) || (pdf enabled && not found) => try Asciidoc 61*49cdfc7eSAndroid Build Coastguard Worker if test "x$enable_metadata_html" = xyes -a "x$metadata_generator_html" = x || 62*49cdfc7eSAndroid Build Coastguard Worker test "x$enable_metadata_pdf" = xyes -a "x$metadata_generator_pdf" = x; then 63*49cdfc7eSAndroid Build Coastguard Worker backup_html="$metadata_generator_html" 64*49cdfc7eSAndroid Build Coastguard Worker backup_pdf="$metadata_generator_pdf" 65*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(missing some dependencies for Asciidoctor => trying Asciidoc) 66*49cdfc7eSAndroid Build Coastguard Worker with_metadata_generator='asciidoc' 67*49cdfc7eSAndroid Build Coastguard Worker LTP_CHECK_METADATA_GENERATOR_ASCIIDOC 68*49cdfc7eSAndroid Build Coastguard Worker # prefer Asciidoctor if it's not worse than Asciidoc 69*49cdfc7eSAndroid Build Coastguard Worker # (html not enabled || asciidoctor html found || asciidoc html not found) && (pdf ...) 70*49cdfc7eSAndroid Build Coastguard Worker if test "x$enable_metadata_html" != xyes -o "x$backup_html" != x -o "x$metadata_generator_html" = x && 71*49cdfc7eSAndroid Build Coastguard Worker test "x$enable_metadata_pdf" != xyes -o "x$backup_pdf" != x -o "x$metadata_generator_pdf" = x; then 72*49cdfc7eSAndroid Build Coastguard Worker with_metadata_generator='asciidoctor' 73*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_html="$backup_html" 74*49cdfc7eSAndroid Build Coastguard Worker metadata_generator_pdf="$backup_pdf" 75*49cdfc7eSAndroid Build Coastguard Worker fi 76*49cdfc7eSAndroid Build Coastguard Worker fi 77*49cdfc7eSAndroid Build Coastguard Worker if test "x$metadata_generator_html" != x -o "x$metadata_generator_pdf" != x; then 78*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(choosing $with_metadata_generator for metadata generation) 79*49cdfc7eSAndroid Build Coastguard Worker fi 80*49cdfc7eSAndroid Build Coastguard Worker fi 81*49cdfc7eSAndroid Build Coastguard Worker 82*49cdfc7eSAndroid Build Coastguard Worker if test "x$enable_metadata_html" = xno; then 83*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(HTML metadata generation disabled) 84*49cdfc7eSAndroid Build Coastguard Worker elif test "x$metadata_generator_html" != x; then 85*49cdfc7eSAndroid Build Coastguard Worker with_metadata_html=yes 86*49cdfc7eSAndroid Build Coastguard Worker fi 87*49cdfc7eSAndroid Build Coastguard Worker 88*49cdfc7eSAndroid Build Coastguard Worker if test "x$enable_metadata_pdf" = xno; then 89*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(PDF metadata generation disabled) 90*49cdfc7eSAndroid Build Coastguard Worker elif test "x$metadata_generator_pdf" != x; then 91*49cdfc7eSAndroid Build Coastguard Worker with_metadata_pdf=yes 92*49cdfc7eSAndroid Build Coastguard Worker fi 93*49cdfc7eSAndroid Build Coastguard Workerfi 94*49cdfc7eSAndroid Build Coastguard Worker 95*49cdfc7eSAndroid Build Coastguard Workerreason="metadata generation skipped due missing suitable generator" 96*49cdfc7eSAndroid Build Coastguard Workerhint="specify correct generator with --with-metadata-generator=asciidoc|asciidoctor or use --disable-metadata|--disable-metadata-html|--disable-metadata-pdf" 97*49cdfc7eSAndroid Build Coastguard Worker 98*49cdfc7eSAndroid Build Coastguard Workerif test -z "$ax_perl_modules_failed"; then 99*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_NOTICE(metadata generation disabled) 100*49cdfc7eSAndroid Build Coastguard Workerelif test "x$ax_perl_modules_failed" = x1; then 101*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_WARN(metadata generation skipped due missing required Perl modules) 102*49cdfc7eSAndroid Build Coastguard Workerelif test "x$with_metadata_html" = xno -a "x$with_metadata_pdf" = xno; then 103*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_WARN([$reason, $hint]) 104*49cdfc7eSAndroid Build Coastguard Workerelse 105*49cdfc7eSAndroid Build Coastguard Worker with_metadata=yes 106*49cdfc7eSAndroid Build Coastguard Worker AC_SUBST(METADATA_GENERATOR, $with_metadata_generator) 107*49cdfc7eSAndroid Build Coastguard Worker if test "x$with_metadata_html" = xno -a "x$enable_metadata_html" = xyes; then 108*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_WARN([HTML $reason, $hint]) 109*49cdfc7eSAndroid Build Coastguard Worker fi 110*49cdfc7eSAndroid Build Coastguard Worker if test "x$with_metadata_pdf" = xno -a "x$enable_metadata_pdf" = xyes; then 111*49cdfc7eSAndroid Build Coastguard Worker AC_MSG_WARN([PDF $reason, $hint]) 112*49cdfc7eSAndroid Build Coastguard Worker fi 113*49cdfc7eSAndroid Build Coastguard Workerfi 114*49cdfc7eSAndroid Build Coastguard Worker 115*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST(WITH_METADATA, $with_metadata) 116*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST(WITH_METADATA_HTML, $with_metadata_html) 117*49cdfc7eSAndroid Build Coastguard WorkerAC_SUBST(WITH_METADATA_PDF, $with_metadata_pdf) 118*49cdfc7eSAndroid Build Coastguard Worker]) 119