Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Initialize variables.
[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 SRCFILES=""
24 while [ -n "$1" ]; do
25   ARG="$1"
26   shift
27   case "${ARG}" in
28     *.f)
29       SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
30        if [ -z "$SRCFILE" ] ; then
31          SRCFILE="$ARG"
32        fi
33        SRCFILES="${SRCFILES} ${SRCFILE}"
34        ;;
35     *)
36       if [ "${ARG}" = "-c" ]; then
37           LINKARGS=""
38       fi
39       ARGS="${ARGS} ${ARG}"
40       ;;
41   esac
42 done
43 ARGS="${ARGS} ${LINKARGS}"
44
45 if [ -n "${SRCFILES}" ]
46 then
47    for SRCFILE in ${SRCFILES}
48    do
49       TMPFILE=$(mymktemp "${SRCFILE}" ".f")
50       cp ${SRCFILE} ${TMPFILE}
51       CFILE="${TMPFILE%.f}.c"
52       #echo "$prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE}"
53       $prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE} || exit $?
54       # When the file is compiled with "-c" and no output file is specified with
55       # "-o", rename the output.  FIXME: do it properly.
56       if [ -f ${CFILE%.c}.o ]; then
57           mv ${CFILE%.c}.o ${SRCFILE%.f}.o
58       fi
59    done
60 else
61    #echo "$prefix/bin/smpicc ${ARGS}"
62    $prefix/bin/smpicc ${ARGS}
63 fi