|
|
|
@@ -34,7 +34,7 @@ if ($compiler eq "") { |
|
|
|
"pathf90", "pathf95", |
|
|
|
"pgf95", "pgf90", "pgf77", "pgfortran", "nvfortran", |
|
|
|
"flang", "egfortran", |
|
|
|
"ifort"); |
|
|
|
"ifort", "nagfor"); |
|
|
|
|
|
|
|
OUTER: |
|
|
|
foreach $lists (@lists) { |
|
|
|
@@ -64,6 +64,9 @@ if ($compiler eq "") { |
|
|
|
if (!$?) { |
|
|
|
|
|
|
|
$data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.s && rm -f ftest.s`; |
|
|
|
if ($data eq "") { |
|
|
|
$data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.c && rm -f ftest.c`; |
|
|
|
} |
|
|
|
if ($data =~ /zhoge_/) { |
|
|
|
$bu = "_"; |
|
|
|
} |
|
|
|
@@ -133,8 +136,16 @@ if ($compiler eq "") { |
|
|
|
$openmp = "-openmp"; |
|
|
|
} |
|
|
|
|
|
|
|
if ($data =~ /NAG/) { |
|
|
|
$vendor = NAG; |
|
|
|
$openmp = "-openmp"; |
|
|
|
} |
|
|
|
|
|
|
|
# for embedded underscore name, e.g. zho_ge, it may append 2 underscores. |
|
|
|
$data = `$compiler -O2 -S ftest3.f > /dev/null 2>&1 && cat ftest3.s && rm -f ftest3.s`; |
|
|
|
if ($data eq "") { |
|
|
|
$data = `$compiler -O2 -S ftest3.f > /dev/null 2>&1 && cat ftest3.c && rm -f ftest3.c`; |
|
|
|
} |
|
|
|
if ($data =~ / zho_ge__/) { |
|
|
|
$need2bu = 1; |
|
|
|
} |
|
|
|
@@ -222,6 +233,12 @@ if ($compiler eq "") { |
|
|
|
$openmp = "-fopenmp"; |
|
|
|
} |
|
|
|
|
|
|
|
if ($compiler =~ /nagfor/) { |
|
|
|
$vendor = NAG; |
|
|
|
$bu = "_"; |
|
|
|
$openmp = "-openmp"; |
|
|
|
} |
|
|
|
|
|
|
|
if ($vendor eq "") { |
|
|
|
$nofortran = 1; |
|
|
|
$compiler = "gfortran"; |
|
|
|
@@ -275,14 +292,20 @@ if (!$?) { |
|
|
|
if ($?) { |
|
|
|
$link = `$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; |
|
|
|
} |
|
|
|
#For nagfor |
|
|
|
if ($?) { |
|
|
|
$link = `$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe`; |
|
|
|
} |
|
|
|
$binary = "" if ($?); |
|
|
|
} |
|
|
|
|
|
|
|
if ($binary eq "") { |
|
|
|
$link = `$compiler $openmp -v ftest2.f 2>&1 && rm -f a.out a.exe`; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if ( $vendor == NAG) { |
|
|
|
$link = `$compiler $openmp -dryrun ftest2.f 2>&1 && rm -f a.out a.exe`; |
|
|
|
} |
|
|
|
$linker_L = ""; |
|
|
|
$linker_l = ""; |
|
|
|
$linker_a = ""; |
|
|
|
@@ -336,6 +359,7 @@ if ($link ne "") { |
|
|
|
|
|
|
|
if ( |
|
|
|
($flags =~ /^\-l/) |
|
|
|
&& ($flags !~ /ibrary/) |
|
|
|
&& ($flags !~ /gfortranbegin/) |
|
|
|
&& ($flags !~ /frtbegin/) |
|
|
|
&& ($flags !~ /pathfstart/) |
|
|
|
@@ -352,6 +376,16 @@ if ($link ne "") { |
|
|
|
$linker_l .= $flags . " "; |
|
|
|
} |
|
|
|
|
|
|
|
if ( $flags =~ /quickfit.o/ && $vendor == NAG) { |
|
|
|
$linker_l .= $flags . " "; |
|
|
|
} |
|
|
|
if ( $flags =~ /safefit.o/ && $vendor == NAG) { |
|
|
|
$linker_l .= $flags . " "; |
|
|
|
} |
|
|
|
if ( $flags =~ /thsafe.o/ && $vendor == NAG) { |
|
|
|
$linker_l .= $flags . " "; |
|
|
|
} |
|
|
|
|
|
|
|
$linker_a .= $flags . " " if $flags =~ /\.a$/; |
|
|
|
} |
|
|
|
|
|
|
|
|