#!/bin/bash

DEFAULT_INSTALLDIR='/msc'
DEFAULT_ACMLDIR='/opt/acml4.0.0'
DEFAULT_VERSION='2011'

WORKINGDIR=`dirname $0`

while [ ! -d "$WORKINGDIR/$VERSION" ] || [ -z "$VERSION" ]
do
  echo "Input version of MARC/MENTAT installation: [${DEFAULT_VERSION}]"
  read VERSION
  if [ -z "$VERSION" ]; then
    VERSION=${DEFAULT_VERSION}
  fi
done
echo "MSC version: $VERSION"

INSTALLDIR=''
if [ -f $WORKINGDIR/../../lib/pathinfo ]; then
  INSTALLDIR=`grep msc $WORKINGDIR/../../lib/pathinfo | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
fi
while [ ! -d "$INSTALLDIR" ] || [ -z "$INSTALLDIR" ]
do
  echo "Input path of MARC/MENTAT installation: [${DEFAULT_INSTALLDIR}]"
  read INSTALLDIR
  if [ -z $INSTALLDIR ]; then
    INSTALLDIR=${DEFAULT_INSTALLDIR}
  fi
done

INSTALLDIR=${INSTALLDIR%/}               # remove trailing slash
echo "MSC installation path: $INSTALLDIR"

BLASDIR=''
FFTWDIR=''
if [ -f $WORKINGDIR/../../lib/pathinfo ]; then
  IKMLDIR=`grep ikml $WORKINGDIR/../../lib/pathinfo | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
  ACMLDIR=`grep acml $WORKINGDIR/../../lib/pathinfo | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
  LAPACKDIR=`grep lapack $WORKINGDIR/../../lib/pathinfo | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
  FFTWDIR=`grep fftw $WORKINGDIR/../../lib/pathinfo | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
  if [ -d "$IKMLDIR" ]
    BLASDIR=$IKMLDIR
    BLASTYPE='IKML'
  elif [ -d "$ACMLDIR" ]
    BLASDIR=$ACMLDIR
    BLASTYPE='ACML'
  elif [ -d "$LAPACKDIR" ]
    BLASDIR=$LAPACKDIR
    BLASTYPE='LAPACK'
  fi
fi

while [ ! -d "$BLASDIR" ] || [ -z "$BLASDIR" ]
do
  echo "Input path of BLAS installation:"
  read BLASDIR
  echo "Input path of BLAS installation [IKML | ACML | LAPACK]:"
  read BLASTYPE
done

if [ ! -d "$FFTWDIR" ]
  echo "error, FFTW must be installed and specified in DAMASK_ROOT/lib/pathinfo"
  exit
fi

BLASDIR=${BLASDIR%/}               # remove trailing slash
FFTWDIR=${FFTWDIR%/}               # remove trailing slash

case $BLASTYPE in
    IKML | ikml) 
    BLAS=" -mkl"
    ;;
    ACML | acml) 
    BLAS=" -L $BLASDIR/ifort64_mp/lib -lacml_mp"
    ;;
    LAPACK | lapack) 
    BLAS=" -L $BLASDIR/lib -llapack"
    ;;
    *)
    echo "error, BLAS type must be IKML, ACML, or LAPACK"
    exit
    ;;
esac

FFTW=" -L${FFTWDIR}/lib -lfftw3_threads -lfftw3"

# tools
echo ''
echo 'copying Marc tools...'
theDIR=$INSTALLDIR/marc$VERSION/tools
for filename in 'comp_user' \
                'comp_user_h' \
                'comp_user_mp' \
                'run_marc' \
                'run_h_marc' \
                'run_mp_marc' \
                'include_linux64'; do
  cp $WORKINGDIR/$VERSION/Marc_tools/$filename $theDIR
  echo $theDIR/$filename | xargs perl -pi -e "s:%INSTALLDIR%:${INSTALLDIR}:g"
  echo $theDIR/$filename | xargs perl -pi -e "s:%VERSION%:${VERSION}:g"
  echo $theDIR/$filename | xargs perl -pi -e "s:%BLAS%:${BLAS}:g"
  echo $theDIR/$filename | xargs perl -pi -e "s:%FFTW%:${FFTW}:g"
  echo $filename
done

# Mentat scripts
echo ''
echo 'copying Mentat scripts...'
theDIR=$INSTALLDIR/mentat$VERSION/bin
for filename in 'edit_window' \
                'submit1' \
                'submit2' \
                'submit3'; do
  cp $WORKINGDIR/$VERSION/Mentat_bin/$filename $theDIR
  echo $theDIR/$filename | xargs perl -pi -e "s:%INSTALLDIR%:${INSTALLDIR}:g"
  echo $theDIR/$filename | xargs perl -pi -e "s:%VERSION%:${VERSION}:g"
  echo $filename
done

# Mentat scripts
echo ''
echo 'copying Mentat menus...'
theDIR=$INSTALLDIR/mentat$VERSION/menus
for filename in 'job_run.ms'; do
  cp $WORKINGDIR/$VERSION/Mentat_menus/$filename $theDIR
  echo $theDIR/$filename | xargs perl -pi -e "s:%INSTALLDIR%:${INSTALLDIR}:g"
  echo $theDIR/$filename | xargs perl -pi -e "s:%VERSION%:${VERSION}:g"
  echo $filename
done

# compile menus
echo ''
echo 'compiling menus...'
$INSTALLDIR/mentat$VERSION/bin/mentat -compile $INSTALLDIR/mentat$VERSION/menus/linux64/main.msb

# setting access rights
echo ''
echo 'setting file access rights...'
chmod 555 $INSTALLDIR/marc$VERSION/tools/run_*_marc
chmod 555 $INSTALLDIR/marc$VERSION/tools/comp_user?*

echo ''
echo 'done.'