-ARGS="${ARGS} ${LINKARGS}"
-
-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}
- done
+list_add_not_empty ARGS "${LINKARGS}"
+
+build () {
+ local SRCFILE
+ SRCFILE="$1"
+ TMPFILE=$(mymktemp "${SRCFILE}" ".f")
+ CFILE="${TMPFILE%.f}.c"
+
+ eval $(list_get ARGS)
+
+ cp "${SRCFILE}" "${TMPFILE}" \
+ && "$smpif2c" "${TMPFILE}" \
+ && "$smpicc" "$@" "${CFILE}" \
+ && rm -f "${CFILE}" \
+ && rm -f "${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
+}
+
+if [ -n "${SRCFILES}" ]; then
+ eval $(list_get SRCFILES)
+ for SRCFILE in "$@"; do
+ build "$SRCFILE"
+ done