#! /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;
