#!/bin/csh
#                      build-testcase-cvs
#                      ------------------
# Description:
#   Create a directory called auto-test/ containing the output
#   generated by the LATEST CVS VERSION (without any user mods)
#   using run.in and start.in, also copied to the auto-test dir.
#
# Tasks:
#   Go and recheck out the $PENCIL-HOME/src having moved the current
#   src/ to underdev_src/. (currently the latest CVS version will be
#   checked out)
#
#   Rebuild the source
#
# ([actually call built-testcase]
#
#   Create auto-test/ and point datadir at it.
#
#   Run start.csh
#   Run run.csh
#
#   Copy *.in to auto-test/
#
#   Reset datadir
# )
#   Restore $PENCIL-HOME/src/ from $PENCIL_HOME/underdev_src/

#   Link files into a local src directory
#   Also link files from the bin directory ==> should be renamed
# CVS $Id$
# Usage:
#   pc_setupsrc  [src-dir]

if (! $?PENCIL_HOME) then
  echo "You need to set PENCIL_HOME; consider sourcing sourceme.{,c}sh"
  exit 0
endif

set rundir = `pwd `
set testprefix = auto-test
#if ($#argv > 0) set src = "$1"

#  ## Determine directories to link from
#  set bindir="No-such-directory"
#  set srcdir="No-such-directory"
#  foreach dir ( ../../.. ../..)
#    # Note: the _last_ matching directory will be used
#    if (-d $dir/bin) set bindir=$dir/bin
#    if (-d $dir/src) set srcdir=$dir/src
#  end
set mainbindir = $PENCIL_HOME/bin
set mainsrcdir = $PENCIL_HOME/src
set underdevdir = $PENCIL_HOME/underdev_src

set srcdir = $rundir/src
set savesrcdir = $rundir/underdev_src
set testsrcdir = $rundir/src
set testdatadir = $rundir/${testprefix}-data

if (-d $underdevdir) then
  echo ""
  echo ">>  STOPPING: $PENCIL_HOME/underdev/ already exists! "
  echo ">>  A previous instance of build-testcase-cvs is running or has failed"
  echo ">>  please recover manually. "
  echo
  exit 1
endif

if (-d $testdatadir) then
  echo ""
  echo ">>  STOPPING: $testdatadir already exists! "
  echo ">>  Please remove previous test data before retrying"
  echo
  exit 1
endif


mv -f $mainsrcdir $underdevdir
mv -f $srcdir $savesrcdir

(cd $PENCIL_HOME; cvs -Q up -dP src)

mkdir $srcdir
mkdir $testdatadir
(pc_setupsrc)

if (-e $rundir/datadir.in) then
   mv -f $rundir/datadir.in $rundir/datadir.save
endif

echo $testdatadir > datadir.in


cp -f $rundir/*.in $testdatadir/
cp -f $savesrcdir/*.local $srcdir/
(cd $srcdir; make cleann; make; )



source start.csh
source run.csh


rm -rf $mainsrcdir
rm -rf $srcdir
mv -f $underdevdir $mainsrcdir
mv -f $savesrcdir $srcdir
rm -rf $rundir/datadir.in
if (-e $rundir/datadir.save) then
   mv -f $rundir/datadir.save $rundir/datadir.in
endif