Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new attempt to stabilize the use of underscores on f90/f77/f2c
authorAugustin Degomme <degomme@idpann.imag.fr>
Thu, 14 Mar 2013 12:41:04 +0000 (13:41 +0100)
committerAugustin Degomme <degomme@idpann.imag.fr>
Fri, 29 Mar 2013 09:57:09 +0000 (10:57 +0100)
include/smpi/smpi.h
src/smpi/smpi_global.c
src/smpi/smpicc.in
src/smpi/smpif2c.in
src/smpi/smpiff.in

index 85338dd..b3cfb99 100644 (file)
@@ -519,7 +519,7 @@ XBT_PUBLIC(void*) smpi_shared_set_call(const char* func, const char* input, void
 
 /* Fortran specific stuff */
 XBT_PUBLIC(int) __attribute__((weak)) smpi_simulated_main_(int argc, char** argv);
-XBT_PUBLIC(int) __attribute__((weak)) MAIN_(void);
+XBT_PUBLIC(int) __attribute__((weak)) MAIN__(void);
 XBT_PUBLIC(int) smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]);
 XBT_PUBLIC(void) __attribute__((weak)) user_main_(void);
 
index c29b2b6..ab6e4b2 100644 (file)
@@ -307,7 +307,7 @@ int __attribute__((weak)) main(int argc, char** argv) {
    return smpi_main(smpi_simulated_main_,argc,argv);
 }
 
-int __attribute__((weak)) MAIN_(){
+int __attribute__((weak)) MAIN__(){
   return smpi_main(smpi_simulated_main_,xargc, xargv);
 };
 #endif
index 03c26b3..36ddd2b 100755 (executable)
@@ -6,7 +6,7 @@ INCLUDEARGS="@includeflag@"
 CMAKE_LINKARGS="-L@libdir@"
 
 if [ "@WIN32@" != "1" ]; then
-  CFLAGS="-Dmain=smpi_simulated_main__"
+  CFLAGS="-Dmain=smpi_simulated_main_"
   LINKARGS="-lsimgrid"
 else
   CFLAGS="-include @includedir@/smpi/smpi_main.h"
index 2b77445..4b99f2b 100755 (executable)
@@ -55,6 +55,7 @@ foreach my $fortran (@ARGV) {
       if(/extern \/\* Subroutine \*\//) {
          $cutext = 1;
       }
+      $_ =~ s/(mpi_[\w]*_)_/$1/g;
       if($cutext) {
          if(/;$/) {
             $cutext = 0;
@@ -62,7 +63,7 @@ foreach my $fortran (@ARGV) {
          next;
       }
       if(/\/* Main program alias \*\/\s*int\s+.*\s*\(\s*\)\s*{(.*)}/) {
-         $_ = "int smpi_simulated_main__(int argc, char** argv) { smpi_process_init(&argc, &argv); $1 }\n";
+         $_ = "int smpi_simulated_main_(int argc, char** argv) { smpi_process_init(&argc, &argv); $1 }\n";
       }
       print $tmp "$_\n";
    }
index b86184b..a77da10 100644 (file)
@@ -32,7 +32,7 @@ then
    do
       CFILE="${SRCFILE%.f}.c"
       #echo "$prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE}"
-      $prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE}
+      $prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} 
    done
 else
    #echo "$prefix/bin/smpicc ${ARGS}"