A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "clean the build of the jarfile so that it works with cmake >= 2.8.12 too"
[simgrid.git]
/
src
/
smpi
/
smpif2c.in
diff --git
a/src/smpi/smpif2c.in
b/src/smpi/smpif2c.in
index
ce1272a
..
0a48d50
100755
(executable)
--- a/
src/smpi/smpif2c.in
+++ b/
src/smpi/smpif2c.in
@@
-5,23
+5,31
@@
use strict;
use File::Temp;
use File::Copy;
use File::Temp;
use File::Copy;
-my $include="
-I@top_srcdir@/include -I@top_srcdir@/include/smpi -I@includedir@ -I@includedir@/smpi
";
+my $include="
@includeflag@@f2cflags@
";
foreach my $fortran (@ARGV) {
my $output = $fortran;
$output =~ s/.f$/.c/;
foreach my $fortran (@ARGV) {
my $output = $fortran;
$output =~ s/.f$/.c/;
+
+ #print "F2C INPUT : ".$fortran."\n";
+ #print "F2C OUTPUT: ".$output."\n";
+
+ my$outputdir = $output;
+ $outputdir=~s/[^\/]*\.c$//g;
+ #print "F2C DIR : ".$outputdir."\n";
+
my $tmp = new File::Temp;
$tmp->autoflush(1);
my $tmp = new File::Temp;
$tmp->autoflush(1);
- `f2c $include -w -a $fortran`;
+ #print "f2c -d$outputdir $include -w -a $fortran\n";
+ `f2c -d$outputdir $include -w -a $fortran`;
die "F2C failed\n" if $?;
die "F2C failed\n" if $?;
- open F2C,"<$output";
+ open F2C,"<$output"
or die "Unable to open file $output"
;
my $started = 0;
print $tmp "#ifndef INTEGER_STAR_8\n";
print $tmp "#define INTEGER_STAR_8\n";
print $tmp "#endif\n";
print $tmp "#include <stdlib.h>\n";
my $started = 0;
print $tmp "#ifndef INTEGER_STAR_8\n";
print $tmp "#define INTEGER_STAR_8\n";
print $tmp "#endif\n";
print $tmp "#include <stdlib.h>\n";
- print $tmp "#include <smpif.h>\n\n";
- print $tmp "int __attribute__((weak)) __rank(void) {\n static __thread int rank = -1;\n\n if(rank < 0) {\n rank = smpi_global_rank();\n }\n return rank;\n}\n\n";
+ print $tmp "#include <smpif.h>\n";
while(<F2C>) {
chomp;
if(/\/\* Common Block Declarations \*\//) {
while(<F2C>) {
chomp;
if(/\/\* Common Block Declarations \*\//) {
@@
-31,7
+39,7
@@
foreach my $fortran (@ARGV) {
if(/^} (.*?);/) {
$_ = "}* __attribute__((weak)) $1 = NULL;\n";
} elsif(/^#define\s*(\S*)\s*\(?([^.]*)(\..*?)?\)?$/) {
if(/^} (.*?);/) {
$_ = "}* __attribute__((weak)) $1 = NULL;\n";
} elsif(/^#define\s*(\S*)\s*\(?([^.]*)(\..*?)?\)?$/) {
- $_ = "#define $1 $2\[
__rank()
\]";
+ $_ = "#define $1 $2\[
smpi_current_rank
\]";
if(defined $3) {
$_ .= $3;
}
if(defined $3) {
$_ .= $3;
}
@@
-43,8
+51,9
@@
foreach my $fortran (@ARGV) {
if(/\/\* Table of constant values \*\// || /MAIN__/) {
$started = 0;
}
if(/\/\* Table of constant values \*\// || /MAIN__/) {
$started = 0;
}
+ $_ =~ s/(mpi_[\w]*_)_/$1/g;
if(/\/* Main program alias \*\/\s*int\s+.*\s*\(\s*\)\s*{(.*)}/) {
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";
}
}
print $tmp "$_\n";
}