mirror of
https://github.com/openssl/openssl.git
synced 2024-12-15 06:01:37 +08:00
7b9f8995f4
doc/build.info was essentially generated on the fly while running Configure, something that takes a huge amount of time on slower file systems (such as Windows). Instead, we generate it with 'make update', saving the user from having to wait for too long, at the small price for developers to have to run 'make update' whenever they write a new manual file. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14269)
69 lines
2.4 KiB
Plaintext
69 lines
2.4 KiB
Plaintext
SUBDIRS = man1
|
|
|
|
{-
|
|
use File::Spec::Functions qw(:DEFAULT abs2rel rel2abs);
|
|
use File::Basename;
|
|
|
|
my $sourcedir = catdir($config{sourcedir}, 'doc');
|
|
|
|
foreach my $section ((1, 3, 5, 7)) {
|
|
my @htmlfiles = ();
|
|
my @manfiles = ();
|
|
my %podfiles =
|
|
map { $_ => 1 } glob catfile($sourcedir, "man$section", "*.pod");
|
|
my %podinfiles =
|
|
map { $_ => 1 } glob catfile($sourcedir, "man$section", "*.pod.in");
|
|
|
|
foreach (keys %podinfiles) {
|
|
(my $p = $_) =~ s|\.in$||i;
|
|
$podfiles{$p} = 1;
|
|
}
|
|
|
|
foreach my $p (sort keys %podfiles) {
|
|
my $podfile = abs2rel($p, $sourcedir);
|
|
my $podname = basename($podfile, '.pod');
|
|
my $podinfile = $podinfiles{"$p.in"} ? "$podfile.in" : undef;
|
|
|
|
my $podname = basename($podfile, ".pod");
|
|
|
|
my $htmlfile = abs2rel(catfile($buildtop, "doc", "html", "man$section",
|
|
"$podname.html"),
|
|
catdir($buildtop, "doc"));
|
|
my $manfile = abs2rel(catfile($buildtop, "doc", "man", "man$section",
|
|
"$podname.$section"),
|
|
catdir($buildtop, "doc"));
|
|
|
|
# The build.info format requires file specs to be in Unix format.
|
|
# Especially, since VMS file specs use [ and ], the build.info parser
|
|
# will otherwise get terribly confused.
|
|
if ($^O eq 'VMS') {
|
|
$htmlfile = VMS::Filespec::unixify($htmlfile);
|
|
$manfile = VMS::Filespec::unixify($manfile);
|
|
$podfile = VMS::Filespec::unixify($podfile);
|
|
$podinfile = VMS::Filespec::unixify($podinfile)
|
|
if defined $podinfile;
|
|
} elsif ($^O eq 'MSWin32') {
|
|
$htmlfile =~ s|\\|/|g;
|
|
$manfile =~ s|\\|/|g;
|
|
$podfile =~ s|\\|/|g;
|
|
$podinfile =~ s|\\|/|g
|
|
if defined $podinfile;
|
|
}
|
|
push @htmlfiles, $htmlfile;
|
|
push @manfiles, $manfile;
|
|
$OUT .= << "_____";
|
|
DEPEND[$htmlfile]=$podfile
|
|
GENERATE[$htmlfile]=$podfile
|
|
DEPEND[$manfile]=$podfile
|
|
GENERATE[$manfile]=$podfile
|
|
_____
|
|
$OUT .= << "_____" if $podinfile;
|
|
DEPEND[$podfile]{pod}=$podinfile
|
|
GENERATE[$podfile]=$podinfile
|
|
_____
|
|
}
|
|
$OUT .= "HTMLDOCS[man$section]=" . join(" \\\n", @htmlfiles) . "\n";
|
|
$OUT .= "MANDOCS[man$section]=" . join(" \\\n", @manfiles) . "\n";
|
|
}
|
|
-}
|