openssl/doc/build.info
Richard Levitte 9ca08f91e9 Makefile template: Allow separate generation of .pod.in -> .pod
We do this by adding the attribute 'pod' to all .pod.in -> .pod
generations, like this:

    DEPEND[NAME.pod]{pod}=NAME.pod.in,

...  and selecting out the target files for those dependencies into a
dedicated target 'build_generated_pods', which the 'doc-nits' and
'cmd-nits' make targets are made to depend on.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14067)
2021-02-05 15:51:31 +01:00

67 lines
2.3 KiB
Plaintext

SUBDIRS = man1
{-
use File::Spec::Functions qw(:DEFAULT abs2rel rel2abs);
use File::Basename;
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";
}
-}