[LTP] [PATCH 6/6] docparse: Remove
Petr Vorel
pvorel@suse.cz
Fri Feb 7 11:55:51 CET 2025
Test catalog is generating via sphinx (see 1bf344a3db), unused code for
generating test catalog documentation ("docparse") is removed.
Remove whole docparse/ directory (docparse/testinfo.pl + docs), m4
custom scripts and vendored m4/ax_prog_perl_modules.m4, update
configure.ac and metadata/Makefile.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
configure.ac | 32 ---
docparse/.gitignore | 5 -
docparse/Makefile | 69 -----
docparse/testinfo.pl | 526 -------------------------------------
m4/ax_prog_perl_modules.m4 | 77 ------
m4/ltp-docparse.m4 | 118 ---------
metadata/Makefile | 9 -
7 files changed, 836 deletions(-)
delete mode 100644 docparse/.gitignore
delete mode 100644 docparse/Makefile
delete mode 100755 docparse/testinfo.pl
delete mode 100644 m4/ax_prog_perl_modules.m4
delete mode 100644 m4/ltp-docparse.m4
diff --git a/configure.ac b/configure.ac
index 672880bfc7..344b2ae2c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -266,33 +266,6 @@ else
AC_SUBST([WITH_BASH],["no"])
fi
-# metadata
-AC_ARG_ENABLE([metadata],
- [AS_HELP_STRING([--disable-metadata],
- [Disable metadata generation (both HTML and PDF, default no)])],
- [], [enable_metadata=yes]
-)
-AC_ARG_ENABLE([metadata_html],
- [AS_HELP_STRING([--disable-metadata-html],
- [Disable metadata HTML generation (default no)])],
- [], [enable_metadata_html=yes]
-)
-
-AC_ARG_ENABLE([metadata_pdf],
- [AS_HELP_STRING([--enable-metadata-pdf],
- [Enable metadata PDF generation (default no)])],
- [], [enable_metadata_pdf=no]
-)
-
-AC_ARG_WITH([metadata_generator],
- [AS_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
- [Specify metadata generator to use (default autodetect)])],
- [with_metadata_generator=$withval],
- [with_metadata_generator=detect]
-)
-
-LTP_DOCPARSE
-
# Expect
AC_ARG_WITH([expect],
[AS_HELP_STRING([--with-expect],
@@ -467,11 +440,6 @@ libmnl: ${have_libmnl:-yes}
libnuma: ${have_libnuma:-no} (headers: ${have_numa_headers:-yes}, v2 headers: ${have_numa_headers_v2:-no})
libtirpc: ${have_libtirpc:-no}
glibc SUN-RPC: ${have_rpc_glibc:-no}
-
-METADATA
-metadata generator: $with_metadata_generator
-HTML metadata: $with_metadata_html
-PDF metadata: $with_metadata_pdf
EOF
if test "x$with_realtime_testsuite" = xyes; then
diff --git a/docparse/.gitignore b/docparse/.gitignore
deleted file mode 100644
index d786a4762b..0000000000
--- a/docparse/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/*.txt
-/docbook-xsl.css
-/metadata.html
-/metadata.pdf
-/metadata.chunked/
diff --git a/docparse/Makefile b/docparse/Makefile
deleted file mode 100644
index 20851fba63..0000000000
--- a/docparse/Makefile
+++ /dev/null
@@ -1,69 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (c) 2019 Cyril Hrubis <chrubis@suse.cz>
-# Copyright (c) 2020 Petr Vorel <pvorel@suse.cz>
-
-top_srcdir ?= ..
-
-include $(top_srcdir)/include/mk/env_pre.mk
-include $(top_srcdir)/include/mk/functions.mk
-
-ifeq ($(METADATA_GENERATOR),asciidoctor)
-METADATA_GENERATOR_CMD := asciidoctor
-METADATA_GENERATOR_PARAMS := -d book metadata.txt
-METADATA_GENERATOR_PARAMS_HTML := -b xhtml
-METADATA_GENERATOR_PARAMS_PDF := -b pdf -r asciidoctor-pdf
-else ifeq ($(METADATA_GENERATOR),asciidoc)
-METADATA_GENERATOR_CMD := a2x
-METADATA_GENERATOR_PARAMS := --xsltproc-opts "--stringparam toc.section.depth 1" -d book -L --resource="$(PWD)" metadata.txt
-METADATA_GENERATOR_PARAMS_HTML := -f xhtml
-METADATA_GENERATOR_PARAMS_PDF := -f pdf
-METADATA_GENERATOR_PARAMS_HTML_CHUNKED := -f chunked
-else ifeq ($(METADATA_GENERATOR),)
-$(error 'METADATA_GENERATOR' not configured, run ./configure in the root directory)
-else
-$(error '$(METADATA_GENERATOR)' not supported, only asciidoctor and asciidoc are supported)
-endif
-
-ifdef VERBOSE
-METADATA_GENERATOR_PARAMS += -v
-endif
-
-CLEAN_TARGETS := *.css *.js *.txt
-
-ifeq ($(WITH_METADATA_HTML),yes)
-MAKE_TARGETS += metadata.html
-ifneq ($(METADATA_GENERATOR_PARAMS_HTML_CHUNKED),)
-MAKE_TARGETS += metadata.chunked
-endif
-endif
-
-ifeq ($(WITH_METADATA_PDF),yes)
-MAKE_TARGETS += metadata.pdf
-endif
-
-INSTALL_DIR = metadata
-INSTALL_TARGETS = *.css *.js
-
-ifndef METADATA_GENERATOR
-METADATA_GENERATOR := asciidoctor
-endif
-
-txt: ${abs_top_builddir}/metadata/ltp.json
- $(abs_srcdir)/testinfo.pl $<
-
-ifeq ($(WITH_METADATA_HTML),yes)
-metadata.html: txt
- $(METADATA_GENERATOR_CMD) $(METADATA_GENERATOR_PARAMS) $(METADATA_GENERATOR_PARAMS_HTML)
-
-ifneq ($(METADATA_GENERATOR_PARAMS_HTML_CHUNKED),)
-metadata.chunked: txt
- $(METADATA_GENERATOR_CMD) $(METADATA_GENERATOR_PARAMS) $(METADATA_GENERATOR_PARAMS_HTML_CHUNKED)
-endif
-endif
-
-ifeq ($(WITH_METADATA_PDF),yes)
-metadata.pdf: txt
- $(METADATA_GENERATOR_CMD) $(METADATA_GENERATOR_PARAMS) $(METADATA_GENERATOR_PARAMS_PDF)
-endif
-
-include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/docparse/testinfo.pl b/docparse/testinfo.pl
deleted file mode 100755
index 487b7d5f22..0000000000
--- a/docparse/testinfo.pl
+++ /dev/null
@@ -1,526 +0,0 @@
-#!/usr/bin/perl
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (c) 2019 Cyril Hrubis <chrubis@suse.cz>
-# Copyright (c) 2020-2021 Petr Vorel <pvorel@suse.cz>
-
-use strict;
-use warnings;
-
-use JSON qw(decode_json);
-use Cwd qw(abs_path);
-use File::Basename qw(dirname);
-
-use constant OUTDIR => dirname(abs_path($0));
-
-# tags which expect git tree, also need constant for URL
-our @TAGS_GIT = ("linux-git", "linux-stable-git", "glibc-git", "musl-git");
-
-# tags should map these in lib/tst_test.c
-use constant LINUX_GIT_URL => "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=";
-use constant LINUX_STABLE_GIT_URL => "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=";
-use constant GLIBC_GIT_URL => "https://sourceware.org/git/?p=glibc.git;a=commit;h=";
-use constant MUSL_GIT_URL => "https://git.musl-libc.org/cgit/musl/commit/src/linux/clone.c?id=";
-use constant CVE_DB_URL => "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-";
-
-sub load_json
-{
- my ($fname, $mode) = @_;
- local $/;
-
- open(my $fh, '<', $fname) or die("Can't open $fname $!");
-
- return <$fh>;
-}
-
-sub log_info
-{
- my $msg = shift;
- print STDERR "INFO: $msg\n";
-}
-
-sub log_warn
-{
- my $msg = shift;
- print STDERR "WARN: $msg\n";
-}
-
-sub print_asciidoc_page
-{
- my ($fh, $json, $title, $content) = @_;
-
- print $fh <<EOL;
-// -*- mode:doc; -*-
-// vim: set syntax=asciidoc:
-
-$title
-
-$content
-EOL
-}
-
-sub tag_url {
- my ($tag, $value, $scm_url_base) = @_;
-
- if ($tag eq "fname") {
- return $scm_url_base . $value;
- }
-
- if ($tag eq "CVE") {
- return CVE_DB_URL . $value;
- }
-
- # *_GIT_URL
- my $key = tag2env($tag) . "_URL";
- if (defined($constant::declared{"main::$key"})) {
- return eval("main::$key") . $value;
- }
-
- if ('known-fail') {
- return '';
- }
-
- die("unknown constant '$key' for tag $tag, define it!");
-}
-
-sub bold
-{
- return "*$_[0]*";
-}
-
-sub code
-{
- return "+$_[0]+";
-}
-
-sub hr
-{
- return "\n\n'''\n\n";
-}
-
-sub html_a
-{
- my ($url, $text) = @_;
-
- # escape: ] |
- $text =~ s/([]|])/\\$1/g;
-
- return "$url\[$text\]";
-}
-
-sub h1
-{
- return "== $_[0]\n";
-}
-
-sub h2
-{
- return "=== $_[0]\n";
-}
-
-sub h3
-{
- return "==== $_[0]\n";
-}
-
-sub label
-{
- return "[[$_[0]]]\n";
-}
-
-sub paragraph
-{
- return "$_[0]\n\n";
-}
-
-sub reference
-{
- my ($link, %args) = @_;
-
- $args{text} //= $link;
- $args{delimiter} //= "";
-
- return "xref:$link\[$args{text}\]$args{delimiter}\n";
-}
-
-sub table
-{
- return "|===\n";
-}
-
-sub table_escape
-{
- my $out = $_[0];
-
- $out =~ s/\|/\\|/g;
- return $out;
-}
-
-sub print_defined
-{
- my ($key, $val, $val2) = @_;
-
- if (defined($val)) {
- return paragraph(bold($key) . ": " . $val . (defined($val2) ? " $val2" : ""));
- }
-}
-
-sub content_about
-{
- my $json = shift;
- my $content;
-
- $content .= print_defined("URL", $json->{'testsuite'}->{'url'});
- $content .= print_defined("Version", $json->{'testsuite'}->{'version'});
- $content .= print_defined("Default timeout", $json->{'defaults'}->{'timeout'}, "seconds");
-
- return $content;
-}
-
-sub uniq {
- my %seen;
- grep !$seen{$_}++, @_;
-}
-
-sub get_test_names
-{
- my @names = @{$_[0]};
- my ($letter, $prev_letter);
- my $content;
-
- for my $name (sort @names) {
- $letter = substr($name, 0, 1);
- if (defined($prev_letter) && $letter ne $prev_letter) {
- $content .= "\n";
- }
-
- $content .= reference($name, delimiter => " ");
- $prev_letter = $letter;
- }
- $content .= "\n";
-
- return $content;
-}
-
-sub get_test_letters
-{
- my @names = @{$_[0]};
- my $letter;
- my $prev_letter = "";
- my $content;
-
- for (@names) {
- $_ = substr($_, 0, 1);
- }
- @names = uniq(@names);
-
- for my $letter (@names) {
- $content .= reference($letter);
- }
- $content .= "\n";
-
- return $content;
-}
-
-sub tag2title
-{
- my $tag = shift;
- return code(".$tag");
-}
-
-sub get_filters
-{
- my $json = shift;
- my %data;
-
- while (my ($k, $v) = each %{$json->{'tests'}}) {
- for my $j (keys %{$v}) {
- next if ($j eq 'fname' || $j eq 'doc');
- $data{$j} = () unless (defined($data{$j}));
-
- if ($j eq 'tags') {
- for my $tags (@{$v}{'tags'}) {
- for my $tag (@$tags) {
- my $k2 = $$tag[0];
- my $v2 = $$tag[1];
- $data{$j}{$k2} = () unless (defined($data{$j}{$k2}));
- push @{$data{$j}{$k2}}, $k unless grep{$_ eq $k} @{$data{$j}{$k2}};
- }
- }
- } else {
- push @{$data{$j}}, $k unless grep{$_ eq $k} @{$data{$j}};
- }
- }
- }
- return \%data;
-}
-
-sub content_filter
-{
- my $k = $_[0];
- my $title = $_[1];
- my $desc = $_[2];
- my $h = $_[3];
- my ($letter, $prev_letter, $content);
-
- $content = label($k);
- $content .= $title;
- $content .= paragraph("Tests containing $desc flag.");
-
- $content .= get_test_names(\@{$h});
-
- return $content;
-}
-
-sub content_filters
-{
- my $json = shift;
- my $data = get_filters($json);
- my %h = %$data;
- my $content;
-
- for my $k (sort keys %$data) {
- my $title = tag2title($k);
- if (ref($h{$k}) eq 'HASH') {
- $content .= label($k);
- $content .= h2($title);
- for my $k2 (sort keys %{$h{$k}}) {
- my $title2 = code($k2);
- $content .= content_filter($k2, h3($title2), "$title $title2", $h{$k}{$k2});
- }
- } else {
- $content .= content_filter($k, h2($title), $title, \@{$h{$k}});
- }
- }
-
- return $content;
-}
-
-sub tag2env
-{
- my $tag = shift;
- $tag =~ s/-/_/g;
- return uc($tag);
-}
-
-sub detect_git
-{
- my %data;
-
- for my $tag (@TAGS_GIT) {
- my $env = tag2env($tag);
-
- unless (defined $ENV{$env} && $ENV{$env}) {
- log_warn("git repository $tag not defined. Define it in \$$env");
- next;
- }
-
- unless (-d $ENV{$env}) {
- log_warn("\$$env does not exit ('$ENV{$env}')");
- next;
- }
-
- if (system("which git >/dev/null")) {
- log_warn("git not in \$PATH ('$ENV{'PATH'}')");
- next;
- }
-
- chdir($ENV{$env});
- if (!system("git log -1 > /dev/null")) {
- log_info("using '$ENV{$env}' as $env repository");
- $data{$tag} = $ENV{$env};
- } else {
- log_warn("git failed, git not installed or \$$env is not a git repository? ('$ENV{$env}')");
- }
- chdir(OUTDIR);
- }
-
- return \%data;
-}
-
-sub content_all_tests
-{
- my $json = shift;
- my @names = sort keys %{$json->{'tests'}};
- my $letters = paragraph(get_test_letters(\@names));
- my $git_url = detect_git();
- my $tmp = undef;
- my $printed = "";
- my $content;
-
- $content .= paragraph("Total $#names tests.");
- $content .= $letters;
- $content .= get_test_names(\@names);
-
- for my $name (@names) {
- my $letter = substr($name, 0, 1);
-
- if ($printed ne $letter) {
- $content .= label($letter);
- $content .= h2($letter);
- $printed = $letter;
- }
-
- $content .= hr() if (defined($tmp));
- $content .= label($name);
- $content .= h3($name);
- $content .= $letters;
-
- if (defined($json->{'testsuite'}->{'scm_url_base'}) &&
- defined($json->{'tests'}{$name}{fname})) {
- $content .= paragraph(html_a(tag_url("fname", $json->{'tests'}{$name}{fname},
- $json->{'testsuite'}->{'scm_url_base'}), "source"));
- }
-
- if (defined $json->{'tests'}{$name}{doc}) {
- for my $doc (@{$json->{'tests'}{$name}{doc}}) {
-
- # fix formatting for asciidoc [DOCUMENTATION] => *Documentation*
- if ($doc =~ s/^\[(.*)\]$/$1/) {
- $doc = paragraph(bold(ucfirst(lc($doc))));
- }
-
- $content .= "$doc\n";
- }
- $content .= "\n";
- }
-
- if ($json->{'tests'}{$name}{timeout}) {
- if ($json->{'tests'}{$name}{timeout} eq -1) {
- $content .= paragraph("Test timeout is disabled");
- } else {
- $content .= paragraph("Test timeout is $json->{'tests'}{$name}{timeout} seconds");
- }
- } else {
- $content .= paragraph("Test timeout defaults to $json->{'defaults'}->{'timeout'} seconds");
- }
-
- my $tmp2 = undef;
- for my $k (sort keys %{$json->{'tests'}{$name}}) {
- my $v = $json->{'tests'}{$name}{$k};
- next if ($k eq "tags" || $k eq "fname" || $k eq "doc");
- if (!defined($tmp2)) {
- $content .= table . "|Key|Value\n\n"
- }
-
- $content .= "|" . reference($k, text => tag2title($k)) . "\n|";
-
- if (ref($v) eq 'ARRAY') {
- # two dimensional array
- if (ref(@$v[0]) eq 'ARRAY') {
- for my $v2 (@$v) {
- # convert NULL to "NULL" string to be printed
- for my $v3 (@$v2) {
- $v3 = "NULL" if (!defined $v3);
- }
- $content .= paragraph(table_escape(join(', ', @$v2)));
- }
- } else {
- # one dimensional array
- $content .= table_escape(join(', ', @$v));
- }
- } else {
- # plain content
- $content .= table_escape($v);
- }
-
- $content .= "\n";
-
- $tmp2 = 1;
- }
- if (defined($tmp2)) {
- $content .= table . "\n";
- }
-
- $tmp2 = undef;
- my %commits;
- my @sorted_tags = sort { $a->[0] cmp $b->[0] } @{$json->{'tests'}{$name}{tags} // []};
-
- for my $tag (@sorted_tags) {
- if (!defined($tmp2)) {
- $content .= table . "|Tag|Info\n"
- }
- my $k = @$tag[0];
- my $v = @$tag[1];
- my $url;
-
- if (defined($$git_url{$k})) {
- $commits{$k} = () unless (defined($commits{$k}));
- unless (defined($commits{$k}{$v})) {
- chdir($$git_url{$k});
- $commits{$k}{$v} = `git log --pretty=format:'%s' -1 $v`;
- chdir(OUTDIR);
- }
- $v .= ' ("' . $commits{$k}{$v} . '")';
- }
-
- $url = tag_url($k, @$tag[1]);
- if ($url) {
- $v = html_a($url, $v);
- }
-
- # tag value value can be split into more lines if too long
- # i.e. URL in known-fail
- for (@$tag[2 .. $#$tag]) {
- $v .= " $_";
- }
-
- $content .= "\n|" . reference($k) . "\n|$v\n";
- $tmp2 = 1;
- }
- if (defined($tmp2)) {
- $content .= table . "\n";
- }
-
- $tmp = 1;
- }
-
- return $content;
-}
-
-
-my $json = decode_json(load_json($ARGV[0]));
-
-my $config = [
- {
- file => "about.txt",
- title => h2("About $json->{'testsuite'}->{'name'}"),
- content => \&content_about,
- },
- {
- file => "filters.txt",
- title => h1("Test filtered by used flags"),
- content => \&content_filters,
- },
- {
- file => "all-tests.txt",
- title => h1("All tests"),
- content => \&content_all_tests,
- },
-];
-
-sub print_asciidoc_main
-{
- my $config = shift;
- my $file = "metadata.txt";
- my $content;
-
- open(my $fh, '>', $file) or die("Can't open $file $!");
-
- $content = <<EOL;
-:doctype: inline
-:sectanchors:
-:toc:
-
-EOL
- for my $c (@{$config}) {
- $content .= "include::$c->{'file'}\[\]\n";
- }
- print_asciidoc_page($fh, $json, h1($json->{'testsuite'}->{'short_name'} . " test catalog"), $content);
-}
-
-for my $c (@{$config}) {
- open(my $fh, '>', $c->{'file'}) or die("Can't open $c->{'file'} $!");
- print_asciidoc_page($fh, $json, $c->{'title'}, $c->{'content'}->($json));
-}
-
-print_asciidoc_main($config);
diff --git a/m4/ax_prog_perl_modules.m4 b/m4/ax_prog_perl_modules.m4
deleted file mode 100644
index 70b3230ebd..0000000000
--- a/m4/ax_prog_perl_modules.m4
+++ /dev/null
@@ -1,77 +0,0 @@
-# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_prog_perl_modules.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_PROG_PERL_MODULES([MODULES], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
-#
-# DESCRIPTION
-#
-# Checks to see if the given perl modules are available. If true the shell
-# commands in ACTION-IF-TRUE are executed. If not the shell commands in
-# ACTION-IF-FALSE are run. Note if $PERL is not set (for example by
-# calling AC_CHECK_PROG, or AC_PATH_PROG), AC_CHECK_PROG(PERL, perl, perl)
-# will be run.
-#
-# MODULES is a space separated list of module names. To check for a
-# minimum version of a module, append the version number to the module
-# name, separated by an equals sign.
-#
-# Example:
-#
-# AX_PROG_PERL_MODULES( Text::Wrap Net::LDAP=1.0.3, ,
-# AC_MSG_WARN(Need some Perl modules)
-#
-# LICENSE
-#
-# Copyright (c) 2009 Dean Povey <povey@wedgetail.com>
-#
-# Copying and distribution of this file, with or without modification, are
-# permitted in any medium without royalty provided the copyright notice
-# and this notice are preserved. This file is offered as-is, without any
-# warranty.
-
-#serial 8
-
-AU_ALIAS([AC_PROG_PERL_MODULES], [AX_PROG_PERL_MODULES])
-AC_DEFUN([AX_PROG_PERL_MODULES],[dnl
-
-m4_define([ax_perl_modules])
-m4_foreach([ax_perl_module], m4_split(m4_normalize([$1])),
- [
- m4_append([ax_perl_modules],
- [']m4_bpatsubst(ax_perl_module,=,[ ])[' ])
- ])
-
-# Make sure we have perl
-if test -z "$PERL"; then
-AC_CHECK_PROG(PERL,perl,perl)
-fi
-
-if test "x$PERL" != x; then
- ax_perl_modules_failed=0
- for ax_perl_module in ax_perl_modules; do
- AC_MSG_CHECKING(for perl module $ax_perl_module)
-
- # Would be nice to log result here, but can't rely on autoconf internals
- $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1
- if test $? -ne 0; then
- AC_MSG_RESULT(no);
- ax_perl_modules_failed=1
- else
- AC_MSG_RESULT(ok);
- fi
- done
-
- # Run optional shell commands
- if test "$ax_perl_modules_failed" = 0; then
- :
- $2
- else
- :
- $3
- fi
-else
- AC_MSG_WARN(could not find perl)
-fi])dnl
diff --git a/m4/ltp-docparse.m4 b/m4/ltp-docparse.m4
deleted file mode 100644
index 9514e5e1e9..0000000000
--- a/m4/ltp-docparse.m4
+++ /dev/null
@@ -1,118 +0,0 @@
-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; then
- enable_metadata_html=no
- enable_metadata_pdf=no
- with_metadata_generator=none
-fi
-
-if 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)
-])
diff --git a/metadata/Makefile b/metadata/Makefile
index 522af42705..b4f9f89384 100644
--- a/metadata/Makefile
+++ b/metadata/Makefile
@@ -14,15 +14,6 @@ INSTALL_DIR = metadata
ltp.json: metaparse
$(abs_srcdir)/parse.sh > ltp.json
-ifeq ($(WITH_METADATA),yes)
- mkdir -p $(abs_top_builddir)/docparse
- $(MAKE) -C $(abs_top_builddir)/docparse/ -f $(abs_top_srcdir)/docparse/Makefile
-endif
-
-ifeq ($(WITH_METADATA),yes)
-install:
- $(MAKE) -C $(abs_top_builddir)/docparse/ -f $(abs_top_srcdir)/docparse/Makefile install
-endif
test:
$(MAKE) -C $(abs_srcdir)/tests/ test
--
2.47.2
More information about the ltp
mailing list