#!/bin/bash

DEFAULT_VERSION='2012'

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 -vE "^[[:space:]]*#|^$" $WORKINGDIR/../../lib/pathinfo | grep -i msc | head -n1 | awk 'BEGIN { FS = "[ \t]+" } ; { print $2 }'`
fi

while [ ! -d "$INSTALLDIR" ] || [ -z "$INSTALLDIR" ]
do
  echo "Input path of MARC/MENTAT installation:"
  read INSTALLDIR
done

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

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

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

if [ ! -d "$FFTWDIR" ]; then
  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/lib64 -L$BLASDIR/lib -llapack"
    ;;
    *)
    echo "error, BLAS type must be IKML, ACML, or LAPACK"
    exit
    ;;
esac

FFTW=" -L$FFTWDIR/lib -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.'