#!/bin/sh #set -x UPCC_CMD="cc" createdfiles= compileonly= explicitoutput= trap 'eval rm -f $createdfiles' INT for file in "$@" ; do base=`basename $file .upc 2> /dev/null` base2=`basename $file 2> /dev/null` if test "$base" != "$base2" -a -f "$file" ; then # use cp instead of ln because ln leads to race conditions on ORNL's broken filesystems #ln -s "$file" "$file-wrap.c" cp "$file" "$file-wrap.c" createdfiles="$createdfiles '$file-wrap.c'" args="$args '$file-wrap.c'" else args="$args '$file'" fi if test "$file" = "-c" ; then compileonly=1 fi if test "$file" = "-o" ; then explicitoutput=1 fi done #$UPCC_CMD `echo "$@" | perl -pe 's/.upc([^\S+])/.upc-wrap.c$1/g'` #sync eval $UPCC_CMD $args status=$? eval rm -f $createdfiles if test "$compileonly" = 1 -a "$explicitoutput" != 1; then # rename created object files for file in $createdfiles ; do dir=`eval dirname $file 2> /dev/null` base=`eval basename $file .upc-wrap.c 2> /dev/null` # use cp instead of mv because mv leads to race conditions on ORNL's broken filesystems cp "${dir}/${base}.upc-wrap.o" "${dir}/${base}.o" rm -f "${dir}/${base}.upc-wrap.o" done fi #sync exit $status