Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Export DVFS functionality for smpi (experimental).
[simgrid.git] / src / smpi / smpiff.in
index 3d90003..25ea41a 100644 (file)
@@ -1,7 +1,8 @@
 #! /bin/bash
-prefix="@prefix@"
+prefix="@exec_prefix@"
 
-ARGS="-DMAIN__=user_main -Diargc_=smpi_process_argc -Dgetarg_=smpi_process_getarg -lf2c"
+ARGS="-DMAIN__=user_main -Diargc_=smpi_process_argc -Dgetarg_=smpi_process_getarg"
+LINKARGS="-lf2c -lm"
 SRCFILES=""
 
 while [ -n "$1" ]; do
@@ -16,13 +17,31 @@ while [ -n "$1" ]; do
        SRCFILES="${SRCFILES} ${SRCFILE}"
        ;;
     *)
+      if [ "${ARG}" = "-c" ]; then
+          LINKARGS=""
+      fi
       ARGS="${ARGS} ${ARG}"
       ;;
   esac
 done
+ARGS="${ARGS} ${LINKARGS}"
 
-for SRCFILE in "${SRCFILES}"
-do
-   CFILE="${SRCFILE%.f}.c"
-   $prefix/bin/smpif2c ${SRCFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE}
-done
+if [ -n "${SRCFILES}" ]
+then
+   for SRCFILE in "${SRCFILES}"
+   do
+      TMPFILE=${SRCFILE}\_$RANDOM.f
+      cp ${SRCFILE} ${TMPFILE}
+      CFILE="${TMPFILE%.f}.c"
+      #echo "$prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE}"
+      $prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE} || exit $?
+      # When the file is compiled with "-c" and no output file is specified with
+      # "-o", rename the output.  FIXME: do it properly.
+      if [ -f ${CFILE%.c}.o ]; then
+          mv ${CFILE%.c}.o ${SRCFILE%.f}.o
+      fi
+   done
+else
+   #echo "$prefix/bin/smpicc ${ARGS}"
+   $prefix/bin/smpicc ${ARGS}
+fi