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
fortran: don't generate temporary files when not necessary.
[simgrid.git]
/
src
/
smpi
/
smpif90.in
diff --git
a/src/smpi/smpif90.in
b/src/smpi/smpif90.in
index
ca8eda5
..
33508f7
100644
(file)
--- a/
src/smpi/smpif90.in
+++ b/
src/smpi/smpif90.in
@@
-38,9
+38,9
@@
cleanup () {
trap 'cleanup' EXIT
filter_and_compile() {
trap 'cleanup' EXIT
filter_and_compile() {
- list_add TMPFILES "${TMPFILE}"
#replace "program main_name by subroutine user_main (and the end clause as well)"
#replace "program main_name by subroutine user_main (and the end clause as well)"
- if [ "x${SMPI_PRETEND_CC}" = "x" ]; then
+ if [ "x${SMPI_PRETEND_CC}" = "x" ] && [ "x${TMPFILE}" != "x" ]; then
+ list_add TMPFILES "${TMPFILE}"
sed 's/^\([[:space:]]*\)\([eE][nN][dD] \)\{0,1\}[pP][rR][oO][gG][rR][aA][mM][^a-zA-Z0-9]*\([a-zA-Z0-9_]*\)/\1\2subroutine user_main /g' "${ARG}" >> "${TMPFILE}"
SRCFILE="${TMPFILE}"
else
sed 's/^\([[:space:]]*\)\([eE][nN][dD] \)\{0,1\}[pP][rR][oO][gG][rR][aA][mM][^a-zA-Z0-9]*\([a-zA-Z0-9_]*\)/\1\2subroutine user_main /g' "${ARG}" >> "${TMPFILE}"
SRCFILE="${TMPFILE}"
else
@@
-64,13
+64,17
@@
while [ $# -gt 0 ]; do
;;
*.f90)
FILENAME=$(basename "${ARG}")
;;
*.f90)
FILENAME=$(basename "${ARG}")
- TMPFILE=$(mymktemp "${ARG}" ".f90")
+ if main=$(grep -q -i "program" "${ARG}"); then
+ TMPFILE=$(mymktemp "${ARG}" ".f90")
+ fi
ORIGFILE="${FILENAME%.f90}"
filter_and_compile
;;
*.F90)
FILENAME=$(basename "${ARG}")
ORIGFILE="${FILENAME%.f90}"
filter_and_compile
;;
*.F90)
FILENAME=$(basename "${ARG}")
- TMPFILE=$(mymktemp "${ARG}" ".F90")
+ if main=$(grep -q -i "program" "${ARG}"); then
+ TMPFILE=$(mymktemp "${ARG}" ".F90")
+ fi
ORIGFILE="${FILENAME%.F90}"
filter_and_compile
;;
ORIGFILE="${FILENAME%.F90}"
filter_and_compile
;;