Arquivos
Hui Zhou 716b64a081 doc: generate alias doc for large-count APIs (2nd try)
Last commit ae7bba3 didn't create html pages for large count routines.
That commit was a bit hackish by assuming the content pattern of the man
page, and we can't reuse the same hack for html aliases since html docs
are independent from man pages in principle.

This commit revise the mechanism by generating a poly_aliases list file
during binding/mansrc generation, thus a more robust mechanism.
2024-08-30 15:08:11 -05:00

48 linhas
1.2 KiB
Perl
Arquivo Executável

#! /usr/bin/env perl
##
## Copyright (C) by Argonne National Laboratory
## See COPYRIGHT in top-level directory
##
# This script renames man/man3/Constants.3 into man/man3/mpiconsts.3
# to avoid collision with other packages. Then it creates alias man
# pages for individual constants.
use strict;
my $srcdir = ".";
foreach my $a (@ARGV) {
if ($a =~ /--?srcdir=(.+)/) {
$srcdir = $1;
}
}
if (!-e "man/man3/Constants.3") {
die "man/man3/Constants.3 not found.\n";
}
rename "man/man3/Constants.3", "man/man3/mpiconsts.3";
open In, "man/man3/mpiconsts.3" or die "Can't open man/man3/mpiconsts.3\n";
while (<In>) {
if (/^\.B\s+(MPIX?_\w+)/) {
open Out, "> man/man3/$1.3" or die "Can't create man/man3/$1.3\n";
print Out ".so man3/mpiconsts.3\n";
close Out;
}
}
close In;
# large count routines
my $poly_aliases_lst = "$srcdir/src/binding/c/mansrc/poly_aliases.lst";
open In, $poly_aliases_lst or die "Failed to open $poly_aliases_lst\n";
while (<In>) {
# e.g. MPI_Recv - MPI_Recv_c
if (/^(MPI\w+) - (MPI\w+)/) {
open Out, "> man/man3/$2.3" or die "Can't create man/man3/$2.3\n";
print Out ".so man3/$1.3\n";
close Out;
}
}
close In;