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

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
open In, "grep '^int MPI\\w*_c\\>' man/man3/*.3 |" or die "Failed to grep for large count man pages\n";
while (<In>) {
    # e.g. [man/man3/MPI_Recv.3:int MPI_Recv_c(void *buf, MPI_Count count, MPI_Datatype datatype, int source,] 
    if (/^man\/man3\/(MPI\w+)\.3:int (MPI\w+_c)\(/) {
        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;
