#!/bin/csh -f

#-clear

set RC=0

echo " "
echo "+----------------------------------+"
echo "| Automatic Shell-script Generator |"
echo "+----------------------------------+"
echo " "

if ( $#argv < 1 ) then
  echo "Usage: $0 [program_name | all | prog1 prog2 ... progN]"
  echo " "
  exit 1
endif

if ( $#argv > 1 ) then
  set progs="$*"
  foreach PROGRAM ( $progs )
    $0 $PROGRAM
  end
  exit 0
else if ("$1" == "all") then
  set progs=`grep -v lib program.list | awk '{print $1}'`
  foreach PROGRAM ( $progs )
    $0 $PROGRAM
  end
  exit 0
else
  set PROGRAM=`basename $1 /`
  echo " "
  echo ">>> $PROGRAM <<<"
  echo " "
endif

if ( "$PROGRAM" == "lib" ) then
  echo "Can't build run script for 'lib'"
  set RC=1
  goto finish
endif

cd $PROGRAM

set SHSCRIPT=$PROGRAM.sh

echo "Creating script for '$PROGRAM' ($PWD/$SHSCRIPT)"

echo "#\!/bin/sh" > $SHSCRIPT
echo "# Run script for $PROGRAM" >> $SHSCRIPT
echo "# Date generated:  `date`" >> $SHSCRIPT
echo "# For `hostname` (`uname -a`)" >> $SHSCRIPT
echo "exec > $PROGRAM.out 2>&1" >> $SHSCRIPT

### SYSTEM DEPENDENT -- please edit --- ###

# Single proc "UNIX" machine:
#echo 'CMD=time' >> $SHSCRIPT

# Cray XMP/YMP/C90:
#echo 'NCPUS=1; export NCPUS' >> $SHSCRIPT
#echo 'CMD=time' >> $SHSCRIPT

# Convex C-series:
#echo 'CMD=time mpa -t 1' >> $SHSCRIPT

# SGI/MP:
echo 'MP_SET_NUMTHREADS=1; export MP_SET_NUMTHREADS' >> $SHSCRIPT
echo 'MPC_NUM_THREADS=1; export MPC_NUM_THREADS' >> $SHSCRIPT
echo 'CMD=timex' >> $SHSCRIPT

### ^^^^^^^^^^^^^^^^ ###

echo "echo '$PROGRAM'" >> $SHSCRIPT
echo "date" >> $SHSCRIPT
if ( -f $PROGRAM.in ) then
  echo '$CMD '"./$PROGRAM.exe < $PROGRAM.in" >> $SHSCRIPT
else
  echo '$CMD '"./$PROGRAM.exe" >> $SHSCRIPT
endif
echo "exit "'$?' >> $SHSCRIPT

chmod u+x $SHSCRIPT

echo " "
echo "*** $PWD/$SHSCRIPT ***"
echo " "
cat $SHSCRIPT

finish:

echo " "
echo -n 'Hit <RETURN> to continue ... '
#-set a="$<"

exit $RC
