summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-08-31 22:54:39 +0200
committerRichard Levitte <levitte@openssl.org>2019-11-29 09:51:16 +0100
commit829f86bb7b52e58c2db333b8e2eb7ad990724746 (patch)
tree56be3d73683071e73eedc542f8c923ce8ac2873e /Configure
parentfbd03b1c5984d1dd42ef99e1a5da70ed587f3380 (diff)
downloadopenssl-new-829f86bb7b52e58c2db333b8e2eb7ad990724746.tar.gz
Add the possibility to generate documentation at build time
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6236)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure38
1 files changed, 35 insertions, 3 deletions
diff --git a/Configure b/Configure
index 8087da52e6..11c9479416 100755
--- a/Configure
+++ b/Configure
@@ -1777,6 +1777,8 @@ if ($builder eq "unified") {
my %defines = ();
my %depends = ();
my %generate = ();
+ my %htmldocs = ();
+ my %mandocs = ();
# Support for $variablename in build.info files.
# Embedded perl code is the ultimate master, still. If its output
@@ -1837,6 +1839,10 @@ if ($builder eq "unified") {
# don't use it if the build tree is different.
my $src_configdata = cleanfile($srcdir, "configdata.pm", $blddir);
+
+ if ($buildinfo_debug) {
+ print STDERR "DEBUG: Reading ",catfile($sourced, $f),"\n";
+ }
push @{$config{build_infos}}, catfile(abs2rel($sourced, $blddir), $f);
my $template =
Text::Template->new(TYPE => 'FILE',
@@ -1948,7 +1954,14 @@ if ($builder eq "unified") {
@s);
}
},
-
+ qr/^\s* HTMLDOCS ${index_re} = ${value_re} $/x
+ => sub { push @{$htmldocs{$expand_variables->($+{INDEX})}},
+ tokenize($expand_variables->($+{VALUE}))
+ if !@skip || $skip[$#skip] > 0 },
+ qr/^\s* MANDOCS ${index_re} = ${value_re} $/x
+ => sub { push @{$mandocs{$expand_variables->($+{INDEX})}},
+ tokenize($expand_variables->($+{VALUE}))
+ if !@skip || $skip[$#skip] > 0 },
qr/^\s* ORDINALS ${index_re} = ${value_re} $/x
=> sub { push @{$ordinals{$expand_variables->($+{INDEX})}},
tokenize($expand_variables->($+{VALUE}))
@@ -2206,6 +2219,20 @@ EOF
}
}
}
+
+ foreach my $section (keys %htmldocs) {
+ foreach (@{$htmldocs{$section}}) {
+ my $htmldocs = cleanfile($buildd, $_, $blddir);
+ $unified_info{htmldocs}->{$section}->{$htmldocs} = 1;
+ }
+ }
+
+ foreach my $section (keys %mandocs) {
+ foreach (@{$mandocs{$section}}) {
+ my $mandocs = cleanfile($buildd, $_, $blddir);
+ $unified_info{mandocs}->{$section}->{$mandocs} = 1;
+ }
+ }
}
my $ordinals_text = join(', ', sort keys %ordinals);
@@ -2366,7 +2393,8 @@ EOF
$unified_info{$_} = [ sort keys %{$unified_info{$_}} ];
}
# Two level structures
- foreach my $l1 (("sources", "shared_sources", "ldadd", "depends")) {
+ foreach my $l1 (("sources", "shared_sources", "ldadd", "depends",
+ "htmldocs", "mandocs")) {
foreach my $l2 (sort keys %{$unified_info{$l1}}) {
my @items =
sort
@@ -2412,7 +2440,11 @@ EOF
my %loopinfo = ( "lib" => [ @{$unified_info{libraries}} ],
"dso" => [ @{$unified_info{modules}} ],
"bin" => [ @{$unified_info{programs}} ],
- "script" => [ @{$unified_info{scripts}} ] );
+ "script" => [ @{$unified_info{scripts}} ],
+ "docs" => [ (map { @{$unified_info{htmldocs}->{$_} // []} }
+ keys %{$unified_info{htmldocs} // {}}),
+ (map { @{$unified_info{mandocs}->{$_} // []} }
+ keys %{$unified_info{mandocs} // {}}) ] );
foreach my $type (keys %loopinfo) {
foreach my $product (@{$loopinfo{$type}}) {
my %dirs = ();