#!/bin/sh
#
# Package install
#
# script for installing the qmcalc calculator (binaries) into a local bin directory
#

# qmcalc software package directory
#QMCALC_PKG_DIR=/usr/local/qmcalc-2.8-linux
QMCALC_PKG_DIR=/usr/local/qmcalc-2.8-linux.src

# application programs installation directory
INSTALL_DIR=/usr/local/bin

# file path to preferred web browser program
BROSWER_DIR=/usr/bin/firefox

# qmcalc software installation directory
QMCALC_EXEC_DIR=$INSTALL_DIR/qmcalc-2

# local shared directory
LOCAL_SHARED_DIR=/usr/local/share/applications

# local shared icons directory
LOCAL_SHARED_ICONS_DIR=/usr/local/share/icons/hicolor

# kde shared directory
KDE_SHARED_DIR=/opt/kde3/share/applications/kde

# user desktop directory
USER_DESKTOP_DIR=~/Desktop

# force recursive deletion of qmcalc software installation directory
if [ -d $QMCALC_EXEC_DIR ]
then
  rm -rf $QMCALC_EXEC_DIR

  # remove symbolic links created in application programs installation directory
  rm $INSTALL_DIR/qmcalc
  rm $INSTALL_DIR/mcalc
  rm $INSTALL_DIR/viewhelp
  rm $INSTALL_DIR/calcedit
  rm $INSTALL_DIR/mcalc_sescnt.dat
  rm $INSTALL_DIR/mcalc_session.dat
  rm $INSTALL_DIR/webpath.dat
  rm $INSTALL_DIR/prglist.dat
  rm $INSTALL_DIR/sampleset1.cin
  rm $INSTALL_DIR/sampleset2.cin
  rm $INSTALL_DIR/statdata.cin
  rm $INSTALL_DIR/errcond.in
  rm $INSTALL_DIR/graphtest1.in
  rm $INSTALL_DIR/graphtest2.in
  rm $INSTALL_DIR/graphtest3.in
  rm $INSTALL_DIR/graphtest4.in
  rm $INSTALL_DIR/graphtest5.in
  rm $INSTALL_DIR/graphtest6.in
  rm $INSTALL_DIR/matsolve.in
  rm $INSTALL_DIR/quicktest.in
  rm $INSTALL_DIR/testcalc-1.in
  rm $INSTALL_DIR/testcalc-2.in
  rm $INSTALL_DIR/testexec.in
  rm $INSTALL_DIR/testset.in
  rm $INSTALL_DIR/anglecon.prg
  rm $INSTALL_DIR/area.prg
  rm $INSTALL_DIR/areacon.prg
  rm $INSTALL_DIR/calcinteg.prg
  rm $INSTALL_DIR/dice.prg
  rm $INSTALL_DIR/energycon.prg
  rm $INSTALL_DIR/lencon.prg
  rm $INSTALL_DIR/loan.prg
  rm $INSTALL_DIR/newtonsmethod.prg
  rm $INSTALL_DIR/powcon.prg
  rm $INSTALL_DIR/pyth.prg
  rm $INSTALL_DIR/sample.prg
  rm $INSTALL_DIR/sample2.prg
  rm $INSTALL_DIR/tempcon.prg
  rm $INSTALL_DIR/trigtest.prg
  rm $INSTALL_DIR/trigtestnp.prg
  rm $INSTALL_DIR/volcon.prg
  rm $INSTALL_DIR/volume.prg
  rm $INSTALL_DIR/wgtcon.prg
  rm $INSTALL_DIR/mcalc_fileio.cfg
  rm $INSTALL_DIR/qmcalc_doc
  rm $INSTALL_DIR/images

  # remove icon files
  rm $LOCAL_SHARED_ICONS_DIR/16x16/apps/qmcalc.png
  rm $LOCAL_SHARED_ICONS_DIR/22x22/apps/qmcalc.png
  rm $LOCAL_SHARED_ICONS_DIR/32x32/apps/qmcalc.png
  rm $LOCAL_SHARED_ICONS_DIR/48x48/apps/qmcalc.png

  # remove desktop data file
  rm $LOCAL_SHARED_DIR/Qmcalc.desktop
  rm $USER_DESKTOP_DIR/Qmcalc.desktop

  if [ -d $KDE_SHARED_DIR ]
  then
    rm $KDE_SHARED_DIR/Qmcalc.desktop
  fi
fi

# make sure Qt 3 library is installed
if [ ! -f /usr/lib/libqt.so.3 ]
then
  if [ -f /usr/lib/qt3/lib/libqt.so.3 ]
  then
    cd /usr/lib
    ln -sf /usr/lib/qt3/lib/libqt.so.3 libqt.so.3
    if [ -f /usr/lib/qt3/lib/libqt-mt.so.3 ]
    then
      ln -sf /usr/lib/qt3/lib/libqt-mt.so.3 libqt-mt.so.3
    fi
  else
    if [ -f /usr/lib/qt3/lib/libqt-mt.so.3 ]
    then
      cd /usr/lib
      ln -sf /usr/lib/qt3/lib/libqt-mt.so.3 libqt.so.3
      ln -sf /usr/lib/qt3/lib/libqt-mt.so.3 libqt-mt.so.3
    else
      if [ -f /usr/lib/qt3/lib/libqt-mt.so.3.3.8 ]
      then
        cd /usr/lib
        ln -sf /usr/lib/qt3/lib/libqt-mt.so.3.3.8 libqt.so.3
        ln -sf /usr/lib/qt3/lib/libqt-mt-so.3.3.0 libqt-mt.so.3
      else
        if [ -f /usr/lib/libqt-mt.so.3.3.8 ]
	then
	  cd /usr/lib
	  ln -sf /usr/lib/libqt-mt.so.3.3.8 libqt.so.3
	  ln -sf /usr/lib/libqt-mt.so.3.3.8 libqt-mt.so.3
	else
	  cp $QMCALC_PKG_DIR/libqt-mt.so.3.3.8 /usr/lib
	  cd /usr/lib
	  ln -sf /usr/lib/libqt-mt.so.3.3.8 libqt.so.3
	  ln -sf /usr/lib/libqt-mt.so.3.3.8 libqt-mt.so.3
	fi
      fi
    fi
  fi
fi

# create executable directory
cd $QMCALC_PKG_DIR
mkdir $QMCALC_EXEC_DIR
cp filelist.txt $QMCALC_EXEC_DIR
cp qmcalc $QMCALC_EXEC_DIR
cp mcalc $QMCALC_EXEC_DIR
cp viewhelp $QMCALC_EXEC_DIR
cp calcdriver $QMCALC_EXEC_DIR
cp calcedit $QMCALC_EXEC_DIR
cp *.prg $QMCALC_EXEC_DIR
cp *.in $QMCALC_EXEC_DIR
cp *.cin $QMCALC_EXEC_DIR
cp *.dat $QMCALC_EXEC_DIR
cp *.cfg $QMCALC_EXEC_DIR
cp qmcalc.png $QMCALC_EXEC_DIR
cp splash.png $QMCALC_EXEC_DIR
cp version $QMCALC_EXEC_DIR
cp -r qmcalc_doc $QMCALC_EXEC_DIR
cp -r images $QMCALC_EXEC_DIR

# create shared directories if they aren't already created
if [ ! -d $LOCAL_SHARED_DIR ]
then
  if [ ! -d /usr/local/share ]
  then
    mkdir /usr/local/share
  fi
  
  mkdir $LOCAL_SHARED_DIR
fi

if [ ! -d $LOCAL_SHARED_ICONS_DIR ]
then
  if [ ! -d /usr/local/share ]
  then
    mkdir /usr/local/share
    mkdir /usr/local/share/icons
  else
    if [ ! -d /usr/local/share/icons ]
    then
      mkdir /usr/local/share/icons
    fi
  fi
  
  mkdir $LOCAL_SHARED_ICONS_DIR
  mkdir $LOCAL_SHARED_ICONS_DIR/16x16
  mkdir $LOCAL_SHARED_ICONS_DIR/16x16/apps
  mkdir $LOCAL_SHARED_ICONS_DIR/22x22
  mkdir $LOCAL_SHARED_ICONS_DIR/22x22/apps
  mkdir $LOCAL_SHARED_ICONS_DIR/32x32
  mkdir $LOCAL_SHARED_ICONS_DIR/32x32/apps
  mkdir $LOCAL_SHARED_ICONS_DIR/48x48
  mkdir $LOCAL_SHARED_ICONS_DIR/48x48/apps
else
  if [ ! -d $LOCAL_SHARED_ICONS_DIR/16x16 ]
  then
    mkdir $LOCAL_SHARED_ICONS_DIR/16x16
    mkdir $LOCAL_SHARED_ICONS_DIR/16x16/apps
  else
    if [ ! -d $LOCAL_SHARED_ICONS_DIR/16x16/apps ]
    then
      mkdir $LOCAL_SHARED_ICONS_DIR/16x16/apps
    fi
  fi
  
  if [ ! -d $LOCAL_SHARED_ICONS_DIR/22x22 ]
  then
    mkdir $LOCAL_SHARED_ICONS_DIR/22x22
    mkdir $LOCAL_SHARED_ICONS_DIR/22x22/apps
  else
    if [ ! -d $LOCAL_SHARED_ICONS_DIR/22x22/apps ]
    then
      mkdir $LOCAL_SHARED_ICONS_DIR/22x22/apps
    fi
  fi
  
  if [ ! -d $LOCAL_SHARED_ICONS_DIR/32x32 ]
  then
    mkdir $LOCAL_SHARED_ICONS_DIR/32x32
    mkdir $LOCAL_SHARED_ICONS_DIR/32x32/apps
  else
    if [ ! -d $LOCAL_SHARED_ICONS_DIR/32x32/apps ]
    then
      mkdir $LOCAL_SHARED_ICONS_DIR/32x32/apps
    fi
  fi

  if [ ! -d $LOCAL_SHARED_ICONS_DIR/48x48 ]
  then
    mkdir $LOCAL_SHARED_ICONS_DIR/48x48
    mkdir $LOCAL_SHARED_ICONS_DIR/48x48/apps
  else
    if [ ! -d $LOCAL_SHARED_ICONS_DIR/48x48/apps ]
    then
      mkdir $LOCAL_SHARED_ICONS_DIR/48x48/apps
    fi
  fi  
fi

if [ ! -d $USER_DESKTOP_DIR ]
then
  mkdir $USER_DESKTOP_DIR
fi

# copy desktop icons and data file
cd $QMCALC_PKG_DIR
cp icons/16x16/qmcalc.png $LOCAL_SHARED_ICONS_DIR/16x16/apps
cp icons/22x22/qmcalc.png $LOCAL_SHARED_ICONS_DIR/22x22/apps
cp icons/32x32/qmcalc.png $LOCAL_SHARED_ICONS_DIR/32x32/apps
cp icons/48x48/qmcalc.png $LOCAL_SHARED_ICONS_DIR/48x48/apps

# copy desktop data file
cp Qmcalc.desktop $LOCAL_SHARED_DIR
cp Qmcalc.desktop $USER_DESKTOP_DIR

if [ -d $KDE_SHARED_DIR ]
then
  cp Qmcalc.desktop $KDE_SHARED_DIR
fi

# make sure executable files have the correct mode settings
cd $QMCALC_EXEC_DIR
chmod u+x qmcalc
chmod u+x mcalc
chmod u+x calcedit
chmod u+x viewhelp

# starting from the application programs installation directory
# default: /usr/local/bin
# create symbolic links to executables and data files
# in qmcalc software installation directory
cd $INSTALL_DIR
ln -sf $QMCALC_EXEC_DIR/qmcalc qmcalc
ln -sf $QMCALC_EXEC_DIR/mcalc mcalc
ln -sf $QMCALC_EXEC_DIR/viewhelp viewhelp
ln -sf $QMCALC_EXEC_DIR/calcedit calcedit
ln -sf $QMCALC_EXEC_DIR/mcalc_sescnt.dat mcalc_sescnt.dat
ln -sf $QMCALC_EXEC_DIR/mcalc_session.dat mcalc_session.dat
ln -sf $QMCALC_EXEC_DIR/webpath.dat webpath.dat
ln -sf $QMCALC_EXEC_DIR/prglist.dat prglist.dat
ln -sf $QMCALC_EXEC_DIR/sampleset1.cin sampleset1.cin
ln -sf $QMCALC_EXEC_DIR/sampleset2.cin sampleset2.cin
ln -sf $QMCALC_EXEC_DIR/statdata.cin statdata.cin
ln -sf $QMCALC_EXEC_DIR/errcond.in errcond.in
ln -sf $QMCALC_EXEC_DIR/graphtest1.in graphtest1.in
ln -sf $QMCALC_EXEC_DIR/graphtest2.in graphtest2.in
ln -sf $QMCALC_EXEC_DIR/graphtest3.in graphtest3.in
ln -sf $QMCALC_EXEC_DIR/graphtest4.in graphtest4.in
ln -sf $QMCALC_EXEC_DIR/graphtest5.in graphtest5.in
ln -sf $QMCALC_EXEC_DIR/graphtest6.in graphtest6.in
ln -sf $QMCALC_EXEC_DIR/matsolve.in matsolve.in
ln -sf $QMCALC_EXEC_DIR/quicktest.in quicktest.in
ln -sf $QMCALC_EXEC_DIR/testcalc-1.in testcalc-1.in
ln -sf $QMCALC_EXEC_DIR/testcalc-2.in testcalc-2.in
ln -sf $QMCALC_EXEC_DIR/testexec.in testexec.in
ln -sf $QMCALC_EXEC_DIR/testset.in testset.in
ln -sf $QMCALC_EXEC_DIR/anglecon.prg anglecon.prg
ln -sf $QMCALC_EXEC_DIR/area.prg area.prg
ln -sf $QMCALC_EXEC_DIR/areacon.prg areacon.prg
ln -sf $QMCALC_EXEC_DIR/calcinteg.prg calcinteg.prg
ln -sf $QMCALC_EXEC_DIR/dice.prg dice.prg
ln -sf $QMCALC_EXEC_DIR/energycon.prg energycon.prg
ln -sf $QMCALC_EXEC_DIR/lencon.prg lencon.prg
ln -sf $QMCALC_EXEC_DIR/loan.prg loan.prg
ln -sf $QMCALC_EXEC_DIR/newtonsmethod.prg newtonsmethod.prg
ln -sf $QMCALC_EXEC_DIR/powcon.prg powcon.prg
ln -sf $QMCALC_EXEC_DIR/pyth.prg pyth.prg
ln -sf $QMCALC_EXEC_DIR/sample.prg sample.prg
ln -sf $QMCALC_EXEC_DIR/sample2.prg sample2.prg
ln -sf $QMCALC_EXEC_DIR/tempcon.prg tempcon.prg
ln -sf $QMCALC_EXEC_DIR/trigtest.prg trigtest.prg
ln -sf $QMCALC_EXEC_DIR/trigtestnp.prg trigtestnp.prg
ln -sf $QMCALC_EXEC_DIR/volcon.prg volcon.prg
ln -sf $QMCALC_EXEC_DIR/volume.prg volume.prg
ln -sf $QMCALC_EXEC_DIR/wgtcon.prg wgtcon.prg
ln -sf $QMCALC_EXEC_DIR/mcalc_fileio.cfg mcalc_fileio.cfg
ln -sf $QMCALC_EXEC_DIR/qmcalc_doc qmcalc_doc
ln -sf $QMCALC_EXEC_DIR/images images

# write file path to preferred web browser programs
echo $BROWSER_DIR > webpath.dat
