X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/903b1504798f9d6f6f5e7ec43545341bb88c38fe..db41dc7d999a5792aca42198b5bc87edb2dbfcce:/tools/smpi/generate_smpi_defines.pl diff --git a/tools/smpi/generate_smpi_defines.pl b/tools/smpi/generate_smpi_defines.pl index 64d1710a98..34c366afde 100755 --- a/tools/smpi/generate_smpi_defines.pl +++ b/tools/smpi/generate_smpi_defines.pl @@ -1,7 +1,13 @@ #!/usr/bin/env perl +# +# Copyright (c) 2016-2023. The SimGrid Team. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the license (GNU LGPL) which comes with this package. +# # Copyright 2016 Vincent Danjean # Christian Heinrich -# +# # Call this script like this: # C/C++ : ./generate_smpi_defines.pl ../../include/smpi/smpi.h # FORTRAN: ./generate_smpi_defines.pl -f ../../include/smpi/smpi.h @@ -12,7 +18,7 @@ # with MPI+TAU). use strict; use warnings; -use Getopt::Std; +use Getopt::Std; my %options=(); getopts("fc", \%options); @@ -25,9 +31,15 @@ if (defined $options{f}) { $commentChar="!" } +print "$commentChar Copyright (c) 2016-2023. The SimGrid Team. All rights reserved.\n"; +print "\n"; +print "$commentChar This program is free software; you can redistribute it and/or modify it\n"; +print "$commentChar under the terms of the license (GNU LGPL) which comes with this package.\n"; +print "\n"; print "$commentChar This file has been automatically generated by the script\n"; print "$commentChar in tools/smpi/generate_smpi_defines.pl\n"; print "$commentChar DO NOT EDIT MANUALLY. ALL CHANGES WILL BE OVERWRITTEN!\n"; +print "\n"; # Formatting of the output sub output_macro { @@ -38,16 +50,11 @@ sub output_macro { # This is a GCC extension. The last statement is the value of the expression # in parentheses. if (defined $options{f}) { - print "#define ". lc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__); call ". ucfirst $id ."\n"; - print "#define ". uc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__); call ". ucfirst $id ."\n"; + print "#define ". lc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__,\"". lc($id) ."\"); call ". ucfirst $id ."\n"; + print "#define ". uc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__,\"". uc($id) ."\"); call ". ucfirst $id ."\n"; } else { - if ($id eq "MPI_Init") { - print "#define MPI_Init(...) ({ smpi_process_init(__VA_ARGS__); smpi_trace_set_call_location(__FILE__,__LINE__); MPI_Init(NULL, NULL); })\n"; - } - else { - print "#define $id(...) ({ smpi_trace_set_call_location(__FILE__,__LINE__); $id(__VA_ARGS__); })\n"; - } + print "#define $id(...) (smpi_trace_set_call_location(__FILE__, __LINE__, \"$id\"), $id(__VA_ARGS__))\n"; } } @@ -61,7 +68,7 @@ while (defined($line = <>)) { } $incall=1; $wholemacro = $line; - } elsif ($incall && $line =~ /^\s+\S/) { + } elsif ($incall && $line =~ /^\s+\S/) { # Did we already start parsing an MPI_CALL macro? If so, just concatenate $wholemacro .= ' '.$line; } elsif ($incall) {