#!/usr/bin/perl
#open the MPI_Call list foile
$MPIFunctionListFileName="mpiCallList.lst";
open(MPIFunctionListFile,"$MPIFunctionListFileName");
@INPUT=<MPIFunctionListFile>;

open(OUTFILE , ">MPICallListHelper.h");

print OUTFILE "#define MPI_ENUM_LIST \\\n";

$noColon=1;
foreach $currentLine (@INPUT)
{
	chomp $currentLine;
	if ($noColon==0)
	{
		print OUTFILE ",\\\n";
	}
	else
	{
		$noColon=0;
	}
	print OUTFILE "$currentLine\_CALL";
}
print OUTFILE "\n\n";
print OUTFILE "#define MPI_RESTIER_ALL_CALLS \\\n";
$noColon=1;
foreach $currentLine (@INPUT)
{
	chomp $currentLine;
	if ($noColon==0)
	{
		print OUTFILE "\\\n";
	}
	else
	{
		$noColon=0;
	}
	print OUTFILE "registerMPICall(\"$currentLine\",MPISpinReplacement::$currentLine\_CALL);";
}
print OUTFILE "\n";
#3open(MPIENUM_H,">mpiEnum.inc");
#3open(MPIREGISTERFUNCTIONS_C,">mpiRegisterFunctions.inc");

#$currentLine=<MPIFunctionListFile>;
#chomp $currentLine;
#print MPIENUM_H "$currentLine\_CALL";
#print MPIREGISTERFUNCTIONS_C "registerMPICall(\"$currentLine\",MPISpinReplacement::$currentLine\_CALL);\n";

#while($currentLine=<MPIFunctionListFile>)
#{
#$currentLine=<MPIFunctionListFile>;
# remove the newline from the string
#chomp $currentLine;
#print MPIENUM_H ",\n$currentLine\_CALL";
#print MPIREGISTERFUNCTIONS_C "registerMPICall(\"$currentLine\",MPISpinReplacement::$currentLine\_CALL);\n";
#}
close(MPIFunctionListFile);
#close(MPIENUM_H);
close(OUTFILE);
#close(MPIREGISTERFUNCTIONS_C);
