Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Initialize variable.
[simgrid.git] / src / smpi / smpiff.in
1 #! /bin/sh
2 prefix="@exec_prefix@"
3
4 ARGS="-DMAIN__=user_main -Diargc_=smpi_process_argc -Dgetarg_=smpi_process_getarg"
5 LINKARGS="-L@F2C_LIBRARY_PATH@ -lf2c -lm"
6 # $1: prefix, $2: suffix
7 mymktemp () {
8     tmp=$(mktemp --suffix="$2" "$1_XXXXXXXXXX" 2> /dev/null)
9     if [ -z "$tmp" ]; then
10         # mktemp failed (unsupported --suffix ?), try unsafe mode
11         tmp=$(mktemp -u "$1_XXXXXXXXXX" 2> /dev/null)
12         if [ -z "$tmp" ]; then
13             # mktemp failed again (doesn't exist ?), try very unsafe mode
14             tmp="$1_$$x$RANDOM"
15         fi
16         tmp="${tmp}$2"
17         # create temp file, and exit if it existed before
18         sh -C -c "true > \"${tmp}\"" || exit 1
19     fi
20     echo "${tmp}"
21 }
22
23 while [ -n "$1" ]; do
24   ARG="$1"
25   shift
26   case "${ARG}" in
27     *.f)
28       SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
29        if [ -z "$SRCFILE" ] ; then
30          SRCFILE="$ARG"
31        fi
32        SRCFILES="${SRCFILES} ${SRCFILE}"
33        ;;
34     *)
35       if [ "${ARG}" = "-c" ]; then
36           LINKARGS=""
37       fi
38       ARGS="${ARGS} ${ARG}"
39       ;;
40   esac
41 done
42 ARGS="${ARGS} ${LINKARGS}"
43
44 if [ -n "${SRCFILES}" ]
45 then
46    for SRCFILE in ${SRCFILES}
47    do
48       TMPFILE=$(mymktemp "${SRCFILE}" ".f")
49       cp ${SRCFILE} ${TMPFILE}
50       CFILE="${TMPFILE%.f}.c"
51       #echo "$prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE}"
52       $prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE} || exit $?
53       # When the file is compiled with "-c" and no output file is specified with
54       # "-o", rename the output.  FIXME: do it properly.
55       if [ -f ${CFILE%.c}.o ]; then
56           mv ${CFILE%.c}.o ${SRCFILE%.f}.o
57       fi
58    done
59 else
60    #echo "$prefix/bin/smpicc ${ARGS}"
61    $prefix/bin/smpicc ${ARGS}
62 fi