#! /bin/sh
#**********************************************************************#
#*                                                                    *#
#* Copyright (c) 2001 by Sun Microsystems, Inc.                       *#
#* All rights reserved.                                               *#
#*                                                                    *#
#**********************************************************************#

# setup default variables  for various external products
hoststr=`uname`
if [ "$hoststr" = "Windows_NT" ]
then
  KIX_OS_NAME=NT; export KIX_OS_NAME
  DEVNULL=NUL; export DEVNULL
else
  KIX_OS_NAME=UNIX; export KIX_OS_NAME
  DEVNULL=/dev/null; export DEVNULL
fi
if [ ! -f install/makefile.in ]
then
  echo "#"
  echo "# ERROR. The current directory is an invalid \"Sun MTP Source Directory.\""
  echo "# `basename $0` must be executed from a \"Sun MTP Source Directory.\""
  echo "# The default \"Sun MTP Source Directory\" is \$UNIKIX/src."
  echo "#"
  exit 1
fi
if [ -z "$PAGER" ]
then
  PAGER=more; export PAGER
fi
CURHOME=`pwd`
TARGET_DIR=$UNIKIX/src
OHOME=`echo $ORACLE_HOME`+
IHOME=`echo $INFORMIXDIR`+
SHOME=`echo $SYBASE`+
DHOME=`echo $INSTHOME`+
DCHOME=`echo $DATACOM`+
INGHOME=`echo $II_SYSTEM`+
UNICTRHOME=`echo $UNICENTER_HOME`+
MHOME=`echo $MQSPATH`+
PLIHOME=`echo $LPI_PRODUCT_DIR`+
TIMESLEEP=0
CONFIG_BUILT=NO
USEROBJ_FILE=./user_objects;export USEROBJ_FILE
USEROPT_FILE=./user_options;export USEROPT_FILE
if [ "+$LOGFILE" = "+" ]
then
  LOGFILE=/tmp/kixinstall.log.$$;export LOGFILE
fi
echo "#"  >> $LOGFILE
echo "# Sun MTP Configuration Started at `date`"  >> $LOGFILE
echo "#"  >> $LOGFILE
echo ""  >> $LOGFILE


#set variables for display functionality
SELECTED="->"
NOSELECTED="  "
if [ $# -eq 1 ]
then
  KIXCFG=$1;export KIXCFG
else
  KIXCFG=./kixinstall.cfg
fi

#
# any variable added to the below list must be initalized before 
# KIXCFG is sourced 
#

if [ ! -f $KIXCFG ]
then
  appl_lang_1="$SELECTED"
  appl_lang_2="$NOSELECTED"
  appl_lang_3="$NOSELECTED"
  appl_lang_4="$NOSELECTED"
  rdbms_oracle="$NOSELECTED"
  rdbms_informix="$NOSELECTED"
  rdbms_ingres="$NOSELECTED"
  rdbms_db2="$NOSELECTED"
  rdbms_cadatacom="$NOSELECTED"
  rdbms_sybase="$NOSELECTED"
  ebm_1="$SELECTED"
  ebm_2="$NOSELECTED"
  ebm_3="$NOSELECTED"
  ebm_4="$NOSELECTED"
  thirdp_1="$NOSELECTED"
  thirdp_2="$NOSELECTED"
  thirdp_3="$NOSELECTED"
  userobj="$NOSELECTED"
  useropt="$NOSELECTED"
else
  appl_lang_4="$NOSELECTED"
  thirdp_3="$NOSELECTED"
  . $KIXCFG
fi

build_executables()
{
echo "Do you want to build the Sun MTP executables ? [Y/N]"
read risp
case $risp in
  Y|y)
      $KIXCLS
      echo "" >> $LOGFILE
      (cd $TARGET_DIR;
      echo "" >> $LOGFILE;
      echo "Making clean in $TARGET_DIR" >> $LOGFILE;
      echo "" >> $LOGFILE;
      make clean 2>&1 | tee /tmp/make.$$;
      cat /tmp/make.$$ >> $LOGFILE;
      rm /tmp/make.$$;
      echo "" >> $LOGFILE;
      echo "Making all in $TARGET_DIR" >> $LOGFILE;
      echo "" >> $LOGFILE;
      make all 2>&1 | tee /tmp/make.$$;
      cat /tmp/make.$$ >> $LOGFILE;
      rm /tmp/make.$$)
      echo "Press Return to Continue"
      read risp
   ;;
    *)
      echo "# Warning: The Sun MTP executables have not been built."
      echo "# To build the Sun MTP executables you must type the following commands:"
      echo "#"
      echo "#-------------------------------------------------------------------------------"
      echo "# cd $TARGET_DIR"
      echo "# make clean ( to remove all object files )"
      echo "# OR"
      echo "# make clobber ( to remove all object and executable files )"
      echo "# make all"
      echo "#"
      echo "Press Return to Continue"
      read risp
   ;;
esac
}


display_choices()
{
$KIXCLS
echo "                           Display Current Configuration   $DATEVAR"
echo ""
echo ""
echo $N "    Application Languages: $C"
if [ "$appl_lang_1" = "$SELECTED" ]
then
   echo "Micro Focus COBOL"
fi
if [ "$appl_lang_2" = "$SELECTED" ]
then
   echo "Liant PL/I"
fi
if [ "$appl_lang_3" = "$SELECTED" ]
then
   echo "Micro Focus COBOL and Liant PL/I"
fi
if [ "$appl_lang_4" = "$SELECTED" ]
then
   echo "no languages"
fi
echo ""
echo $N "    RDBMS: $C"
if [ "$rdbms_oracle" = "$SELECTED" ]
then
   echo "Oracle $C"
fi
if [ "$rdbms_informix" = "$SELECTED" ]
then
   echo "Informix $C"
fi
if [ "$rdbms_ingres" = "$SELECTED" ]
then
   echo "CA-OpenIngres $C"
fi
if [ "$rdbms_db2" = "$SELECTED" ]
then
   echo "DB2/6000 $C"
fi
if [ "$rdbms_cadatacom" = "$SELECTED" ]
then
   echo "CA/DATACOM $C"
fi
if [ "$rdbms_sybase" = "$SELECTED" ]
then
   echo "Sybase $C"
fi
echo ""
echo ""
echo $N "    Batch COBOL RTS: $C"
if [ "$ebm_1" = "$SELECTED" ]
then
   echo "Sun MTP VSAM \"RELATIVE/INDEXED\" Files"
fi
if [ "$ebm_2" = "$SELECTED" ]
then
   echo "Sun MTP VSAM \"RELATIVE\", Micro Focus \"INDEXED\" Files"
fi
if [ "$ebm_3" = "$SELECTED" ]
then
   echo "Micro Focus \"RELATIVE\", Sun MTP VSAM \"INDEXED\" Files"
fi
if [ "$ebm_4" = "$SELECTED" ]
then
   echo "Micro Focus \"RELATIVE/INDEXED/SEQUENTIAL\" Files"
   echo "                                 and"
   echo "                  Sun MTP VSAM \"RDS/KSDS/ESDS\" Files"
fi
echo ""
echo $N "    Third Party Packages: $C"
if [ "$thirdp_1" = "$SELECTED" ]
then
   echo "CA-Unicenter(Security) $C"
fi
if [ "$thirdp_2" = "$SELECTED" ]
then
   echo "MQSeries $C"
fi
echo ""
echo ""
if [ "$thirdp_3" = "$SELECTED" ]
then
   echo "MQSeries $C"
fi
echo ""
echo ""
echo "    User-Specific Objects:"
if [ "$userobj" = "$SELECTED" ]
then
   echo "............................."
   cat ${USEROBJ_FILE}
   echo "............................."
else
   echo ""
   echo ""
fi
echo ""
echo ""
echo "    User-Specific Linker/Compiler Options:"
if [ "$useropt" = "$SELECTED" ]
then
   echo "............................."
   cat ${USEROPT_FILE}
   echo "............................."
else
   echo ""
   echo ""
fi
echo ""
echo "--------------------------------------------------------------------------------"
echo "Press Return to Continue"
read risp
}

Application_Lang_M() 
{
CONFIG_BUILT=NO
appl_lang_loop=1

while [ $appl_lang_loop -ne 0 ]
do
# Begin Application_Lang Menu Loop {
# this line clears the screen 
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
export DATEVAR
echo "                           Application Languages           $DATEVAR"
echo ""
echo ""
echo ""
echo "      -- C Language is supported in all of the following options --"
echo ""
echo "         $appl_lang_1    1   Micro Focus COBOL  & C  < Default >"
echo ""
echo "         $appl_lang_2    2   Liant PL/I & C"
echo ""
echo "         $appl_lang_3    3   Micro Focus COBOL, Liant PL/I & C"
echo ""
echo "         $appl_lang_4    4   C Language only"
echo ""
echo ""
echo "         $NOSELECTED        Press Return for Main Menu"
echo ""
echo ""
echo ""
echo "--------------------------------------------------------------------------------"
echo $N "Enter the option number corresponding to the selection you want: $C"
read opt

# Begin Case Application_Lang {
case $opt in
          1)
           # Check for COBOL environment
           if test "$COBDIR" = ""; then
             echo "#"
             echo "# ERROR. COBDIR variable not set."
             echo "#"
             echo "Press Return to Continue"
             read risp
           else
             if test ! -d $COBDIR
             then
               echo "#"
               echo "# ERROR. COBDIR=$COBDIR directory not found"
               echo "#"
               echo "Press Return to Continue"
               read risp
             else
	       if test -f $COBDIR/bin/cobmode  && 
    test "`$COBDIR/bin/cobmode`" != "Effective Default Working Mode: 32 bit";
	       then
	         echo "COBOL not installed in 32-bit mode"
                 echo "Press Return to Continue"
                 read risp
               else
               appl_lang_1="$SELECTED"
               appl_lang_2="$NOSELECTED"
               appl_lang_3="$NOSELECTED"
               appl_lang_4="$NOSELECTED"
             fi
           fi
	  fi
          ;;
          2)
           # Check for PL/I environment
           if [ $PLIHOME = + ]
           then
             echo "#"
             echo "# ERROR. No LPI_PRODUCT_DIR variable is set. Set LPI_PRODUCT_DIR variable to PL/I"
             echo "#"
             echo "Press Return to Continue"
             read risp
           else
             if test ! -d $LPI_PRODUCT_DIR
             then
               echo "#"
               echo "# ERROR. LPI_PRODUCT_DIR=$LPI_PRODUCT_DIR directory not found"
               echo "#"
               echo "Press Return to Continue"
               read risp
             else
               appl_lang_1="$NOSELECTED"
               appl_lang_2="$SELECTED"
               appl_lang_3="$NOSELECTED"
               appl_lang_4="$NOSELECTED"
             fi
           fi
          ;;
          3)
           # Check for COBOL environment
           if test "$COBDIR" = ""; then
             echo "#"
             echo "# ERROR. COBDIR variable not set."
             echo "#"
             echo "Press Return to Continue"
             read risp
           else
             if test ! -d $COBDIR
             then
               echo "#"
               echo "# ERROR. COBDIR=$COBDIR directory not found"
               echo "#"
               echo "Press Return to Continue"
               read risp
             else
	       if test -f $COBDIR/bin/cobmode  && 
    test "`$COBDIR/bin/cobmode`" != "Effective Default Working Mode: 32 bit";
	       then
	         echo "COBOL not installed in 32-bit mode"
                 echo "Press Return to Continue"
                 read risp
               else
               # Check for PL/I environment
               if [ $PLIHOME = + ]
               then
                 echo "#"
                 echo "# ERROR. No LPI_PRODUCT_DIR variable is set. Set LPI_PRODUCT_DIR variable to PL/I"
                 echo "#"
                 echo "Press Return to Continue"
                 read risp
               else
                 if test ! -d $LPI_PRODUCT_DIR
                 then
                   echo "#"
                   echo "# ERROR. LPI_PRODUCT_DIR=$LPI_PRODUCT_DIR directory not found"
                   echo "#"
                   echo "Press Return to Continue"
                   read risp
                 else
                   appl_lang_1="$NOSELECTED"
                   appl_lang_2="$NOSELECTED"
                   appl_lang_3="$SELECTED"
                   appl_lang_4="$NOSELECTED"
                 fi
               fi
             fi
           fi
	  fi
          ;;
          4)
           # Check for C environment
               appl_lang_1="$NOSELECTED"
               appl_lang_2="$NOSELECTED"
               appl_lang_3="$NOSELECTED"
               appl_lang_4="$SELECTED"
          ;;
          R|r|"")
           appl_lang_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case Application_Lang }

# End Application_Lang Menu loop }
done
}

UserObj_M()
{
CONFIG_BUILT=NO
userobj="$NOSELECTED"
userobjtemp=/tmp/userobj.$$
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
echo "#                         User-Specific Objects           $DATEVAR" > $userobjtemp
if [ $? -ne 0 ]
then
  echo "#"
  echo "# ERROR updating the User-Specific Objects File: $userobjtemp"
  echo "# No User-Specific Objects has been selected"
  echo "#"
  echo "Press Return to Continue"
  read risp
else
  echo "# " >> $userobjtemp
  echo "# " >> $userobjtemp
  echo "# 1) Add User-Specific Objects to the Sun MTP Configuration" >> $userobjtemp
  echo "#    by specifying the objects in one or more uncommented lines." >> $userobjtemp
  echo "# " >> $userobjtemp
  echo "#    For example:" >> $userobjtemp
  echo "#    If the User-Specific Objects are: batch.o cb001.o cb002.o" >> $userobjtemp
  echo "#    These objects will be included by uncommenting the following lines:" >> $userobjtemp
  echo "# " >> $userobjtemp
  echo "#    batch.o cb001.o" >> $userobjtemp
  echo "#    cb002.o" >> $userobjtemp
  echo "# " >> $userobjtemp
  echo "# 2) Type \"<Esc>:wq\" to return to Main Menu" >> $userobjtemp
  echo "# " >> $userobjtemp
  if [ -f $USEROBJ_FILE ]
  then
    cat $USEROBJ_FILE >> $userobjtemp
  fi
  vi $userobjtemp
  cat $userobjtemp | grep -v "^#" > $USEROBJ_FILE
  chmod 666 $USEROBJ_FILE
  if [ -s $USEROBJ_FILE ]
  then
    rm $userobjtemp
    sed -e 's/$/ \\/' < $USEROBJ_FILE > ${USEROBJ_FILE}.mk
    chmod 666 ${USEROBJ_FILE}.mk
    if [ -s $USEROBJ_FILE.mk ]
    then
      echo "./install/kxusrobjdum.o" >> ${USEROBJ_FILE}.mk
      userobj="$SELECTED"
    else
      echo "#"
      echo "# ERROR creating the User-Specific Objects File: ${USEROBJ_FILE}.mk"
      echo "# No User-Specific Objects has been selected"
      echo "#"
      echo "Press Return to Continue"
      read risp
      userobj="$NOSELECTED"
    fi
  else
    rm $userobjtemp
    echo "#"
    echo "# Warning: no User-Specific Objects has been selected"
    echo "#"
    echo "Press Return to Continue"
    read risp
    userobj="$NOSELECTED"
  fi
fi
}

UserOpt_M()
{
CONFIG_BUILT=NO
useropt="$NOSELECTED"
useropttemp=/tmp/useropt.$$
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
echo "#          User-Specific Linker/Compiler Options          $DATEVAR" > $useropttemp
if [ $? -ne 0 ]
then
  echo "#"
  echo "# ERROR updating the User-Specific Linker/Compiler Options File: $useropttemp"
  echo "# No User-Specific Linker/Compiler Options have been selected"
  echo "#"
  echo "Press Return to Continue"
  read risp
else
  echo "# " >> $useropttemp
  echo "# " >> $useropttemp
  echo "# 1) Add User-Specific Linker/Compiler Options to the Sun MTP Configuration" >> $useropttemp
  echo "#    by specifying the options in one or more uncommented lines. Options" >> $useropttemp
  echo "#    specified are passed to the COB or CC comand line depending upon" >> $useropttemp
  echo "#    the environment." >> $useropttemp
  echo "# " >> $useropttemp
  echo "#     Example 1:  In a COBOL environment" >> $useropttemp
  echo "#     Requirements:  add libraries libabc & libxyz" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#     -labc -lxyz" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#     Example 2:  In a non-COBOL environment" >> $useropttemp
  echo "#     Requirements:  add libraries libabc & libxyz" >> $useropttemp
  echo "#                    pass -misalign option to C compiler" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#     -labc -lxyz -misalign" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#    If the User-Specific Options are: -lCrun -lCstd for the Linker" >> $useropttemp
  echo "#    and -misalign for the c compiler" >> $useropttemp
  echo "#    These options will be included by uncommenting the following lines:" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#    -lCrun -lCstd" >> $useropttemp
  echo "#    -misalign" >> $useropttemp
  echo "# " >> $useropttemp
  echo "#       Refer to C compiler or MF COBOL cob command documentation" >> $useropttemp
  echo "#       for more information." >> $useropttemp
  echo "# 2) Type \"<Esc>:wq\" to return to Main Menu" >> $useropttemp
  echo "# " >> $useropttemp
  if [ -f $USEROPT_FILE ]
  then
    cat $USEROPT_FILE >> $useropttemp
  fi
  vi $useropttemp
  cat $useropttemp | grep -v "^#" > $USEROPT_FILE
  chmod 666 $USEROPT_FILE
  useropt="$SELECTED"


  if [ -s $USEROPT_FILE ]
  then
    rm $useropttemp
    sed -e 's/$/ \\/' < $USEROPT_FILE > ${USEROPT_FILE}.mk
    chmod 666 ${USEROPT_FILE}.mk
#    if [ -s $USEROPT_FILE.mk ]
#    then
#      echo "./install/kxusrobjdum.o" >> ${USEROPT_FILE}.mk
#      userobj="$SELECTED"
#    else
#      echo "#"
#      echo "# ERROR creating the User-Specific Objects File: ${USEROPT_FILE}.mk"
#      echo "# No User-Specific Objects has been selected"
#      echo "#"
#      echo "Press Return to Continue"
#      read risp
#      userobj="$NOSELECTED"
#    fi
  else
    rm $useropttemp
    echo "#"
    echo "# Warning: no User-Specific Compiler/Linker Options have been selected"
    echo "#"
    echo "Press Return to Continue"
    read risp
    useropt="$NOSELECTED"
  fi
fi
}


EBM_M()
{
CONFIG_BUILT=NO
ebm_loop=1

while [ $ebm_loop -ne 0 ]
do
# Begin EBM_M Menu Loop {
# this line clears the screen 
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
echo "                          Batch COBOL Runtime System       $DATEVAR"
echo ""
echo ""
echo ""
echo ""
echo "         $ebm_1    1   Sun MTP VSAM \"RELATIVE/INDEXED\" Files      < Default >"
echo ""
echo "         $ebm_2    2   Sun MTP VSAM \"RELATIVE\", Micro Focus \"INDEXED\" Files"
echo ""
echo "         $ebm_3    3   Micro Focus \"RELATIVE\", Sun MTP VSAM \"INDEXED\" Files"
echo ""
echo "         $ebm_4    4   Micro Focus \"RELATIVE/INDEXEDSEQUENTIAL\" Files"
echo "         $NOSELECTED                      and"
echo "         $NOSELECTED       Sun MTP VSAM \"RRDS/KSDS/ESDS\" Files"
echo ""
echo ""
echo "         $NOSELECTED        Press Return for Main Menu"
echo ""
echo ""
echo "--------------------------------------------------------------------------------"
echo $N "Enter the option number corresponding to the selection you want: $C"
read opt

# Begin Case EBM_M {
case $opt in
          1)
           ebm_1="$SELECTED"
           ebm_2="$NOSELECTED"
           ebm_3="$NOSELECTED"
           ebm_4="$NOSELECTED"
          ;;
          2)
           ebm_1="$NOSELECTED"
           ebm_2="$SELECTED"
           ebm_3="$NOSELECTED"
           ebm_4="$NOSELECTED"
          ;;
          3)
           ebm_1="$NOSELECTED"
           ebm_2="$NOSELECTED"
           ebm_3="$SELECTED"
           ebm_4="$NOSELECTED"
          ;;
          4)
           ebm_1="$NOSELECTED"
           ebm_2="$NOSELECTED"
           ebm_3="$NOSELECTED"
           ebm_4="$SELECTED"
          ;;
          R|r|"")
           ebm_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case EBM_M }

# End EBM_M Menu loop }
done
}

RDBMS_M()
{
CONFIG_BUILT=NO
rdbms_loop=1

while [ $rdbms_loop -ne 0 ]
do
# Begin RDBMS_M Menu Loop {
# this line clears the screen 
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
echo "                           RDBMS Configuration             $DATEVAR"
echo ""
echo ""
echo ""
echo "         $rdbms_oracle    1   Oracle RDBMS         (Micro Focus COBOL or Liant PL/I)"
echo "         $rdbms_informix    2   Informix On-Line     (Micro Focus COBOL only)"
echo "         $rdbms_ingres    3   CA-OpenIngres RDBMS  (Micro Focus COBOL only)"
echo "         $rdbms_db2    4   DB2/6000 RDBMS       (Micro Focus COBOL or C)"
echo "         $rdbms_cadatacom    5   CA-DATACOM           (Micro Focus COBOL only)"
echo "         $rdbms_sybase    6   Sybase RDBMS         (Micro Focus COBOL or C)"
echo ""
echo "         $NOSELECTED    R   Reset RDBMS Selections"
echo ""
echo ""
echo "         $NOSELECTED        < Default: None >"
echo ""
echo ""
echo "         $NOSELECTED        Press Return for Main Menu"
echo ""
echo ""
echo "--------------------------------------------------------------------------------"
echo $N "Enter the option number corresponding to the selection you want: $C"
read opt

# Begin Case RDBMS_M {
case $opt in
          R|r)
            rdbms_oracle="$NOSELECTED"
            rdbms_informix="$NOSELECTED"
            rdbms_ingres="$NOSELECTED"
            rdbms_db2="$NOSELECTED"
            rdbms_cadatacom="$NOSELECTED"
            rdbms_sybase="$NOSELECTED"
            ;;
          1)
            if [ $OHOME = + ]
            then
              echo "#"
              echo "# ERROR. No ORACLE_HOME variable set. Set ORACLE_HOME variable to Oracle directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if  test ! -d $ORACLE_HOME 
              then
                echo "#"
                echo "# ERROR. $ORACLE_HOME directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_oracle="$SELECTED"
              fi
            fi
          ;;
          2)
            if [ $IHOME = + ]
            then
              echo "#"
              echo "# ERROR. No INFORMIXDIR variable set. Set INFORMIXDIR variable to Informix directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ ! -d $INFORMIXDIR ] ; 
              then
                echo "#"
                echo "# ERROR. $INFORMIXDIR directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_informix="$SELECTED"
              fi
            fi
            ;;
          3)
            if [ $INGHOME = + ]
            then
              echo "#"
              echo "# ERROR. No II_SYSTEM variable set. Set II_SYSTEM variable to Ingress directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if  test ! -d $II_SYSTEM/ingres 
              then
                echo "#"
                echo "# ERROR. $II_SYSTEM/ingres directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_ingres="$SELECTED"
              fi
            fi
          ;;
          4)
            if [ $DHOME = + ]; 
            then
              echo "#"
              echo "# ERROR. No INSTHOME variable set. Set INSTHOME variable to  DB2/60000 directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ ! -d $INSTHOME ]; 
              then
                echo "#"
                echo "# ERROR. $INSTHOME directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_db2="$SELECTED"
              fi
            fi
          ;;
          5)
            if [ $DCHOME = + ]; 
            then
              echo "#"
              echo "# ERROR. No DATCOM variable set. Set DATACOM variable to  CA-DATACOM directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ ! -d $DATACOM ]; 
              then
                echo "#"
                echo "# ERROR. $DATACOM directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_cadatacom="$SELECTED"
              fi
            fi
          ;;
          6)
            if [ $SHOME = + ]; 
            then
              echo "#"
              echo "# ERROR. No SYBASE variable set. Set SYBASE variable to Sybase directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ ! -d $SYBASE ]; 
              then
                echo "#"
                echo "# ERROR. $SYBASE directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                rdbms_sybase="$SELECTED"
              fi
            fi
          ;;
          R|r|"")
           rdbms_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case RDBMS_M }

# End RDBMS_M Menu loop }
done
}

ebm_rts()
{
  EBM_MF_REL="n"
  EBM_MF_INX="n"
  if [ "$ebm_1" = "$SELECTED" ]
  then
    EBM_MF_REL="n"
    EBM_MF_INX="n"
  fi
  if [ "$ebm_2" = "$SELECTED" ]
  then
    EBM_MF_REL="n"
    EBM_MF_INX="y"
  fi
  if [ "$ebm_3" = "$SELECTED" ]
  then
    EBM_MF_REL="y"
    EBM_MF_INX="n"
  fi
  if [ "$ebm_4" = "$SELECTED" ]
  then
    EBM_MF_REL="y"
    EBM_MF_INX="y"
  fi
  echo "s%EBM_MF_REL=n%EBM_MF_REL=$EBM_MF_REL%" >> /tmp/config.current
  echo "s%EBM_MF_INX=n%EBM_MF_INX=$EBM_MF_INX%" >> /tmp/config.current
}

ThirdPart_M()
{
CONFIG_BUILT=NO
third_part_loop=1

while [ $third_part_loop -ne 0 ]
do
# Begin ThirdPart_M Menu Loop {
# this line clears the screen 
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
echo "                           Third Party Packages            $DATEVAR"
echo ""
echo ""
echo "         $thirdp_1    1   CA-Unicenter Security"
echo ""
echo "         $thirdp_2    2   MQSeries"
echo ""
echo "         $thirdp_3    3   MQSeries with transactional support"
echo ""
echo "         $NOSELECTED    R   Reset Package Selections"
echo ""
echo ""
echo "         $NOSELECTED        < Default: None >"
echo ""
echo ""
echo ""
echo "         $NOSELECTED        Press Return for Main Menu"
echo ""
echo ""
echo "--------------------------------------------------------------------------------"
echo $N "Enter the option number corresponding to the selection you want: $C"
read opt

# Begin Case ThirdPart_M {
case $opt in
          R|r)
            thirdp_1="$NOSELECTED"
            thirdp_2="$NOSELECTED"
            thirdp_3="$NOSELECTED"
            ;;
          1)
            if [ $UNICTRHOME = + ]
            then
              echo "#"
              echo "# ERROR. No UNICENTER_HOME variable set. Set UNICENTER_HOME variable to CA-Unicenter directory"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if  test ! -d $UNICENTER_HOME/lib 
              then
                echo "#"
                echo "# ERROR. $UNICENTER_HOME/lib directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              else
                thirdp_1="$SELECTED"
              fi
            fi
          ;;
          [23])
            if [ $MHOME = + ];
            then
	      case $hoststr in
	      HP-UX)
	          MQSPATH="/opt/mqm"
		  ;;
	      SunOS)
		  MQSPATH="/opt/mqm"
		  ;;
	      AIX)
		  MQSPATH="/usr/lpp/mqm"
		  ;;
	      *)
		  echo unknown
		  ;;
	      esac
            fi
            if [ ! -d $MQSPATH ];
            then
              echo "#"
              echo "# ERROR. MQSPATH=$MQSPATH directory not found"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
	      echo MQSPATH="$MQSPATH"
              export MQSPATH
              if [ $opt -eq 3 ]
              then
                 thirdp_3="$SELECTED"
                 thirdp_2="$NOSELECTED"
              else
                 thirdp_3="$NOSELECTED"
                 thirdp_2="$SELECTED"
	      fi
            fi
          ;;
          R|r|"")
           third_part_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case ThirdPart_M }

# End ThirdPart_M Menu loop }
done
}

print_debug()
{
  echo "" >> $LOGFILE
  echo "" >> $LOGFILE
  echo "Debugging File Information:" >> $LOGFILE
  echo "" >> $LOGFILE
  if [ -f /tmp/config.current ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/config.current is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/config.current >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/oraobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/oraobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/oraobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/oralnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/oralnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/oralnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/infobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/infobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/infobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/inflnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/inflnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/inflnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/ingobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/ingobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/ingobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/inglnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/inglnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/inglnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/db2obj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/db2obj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/db2obj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/db2lnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/db2lnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/db2lnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/dcoobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/dcoobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/dcoobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/dcolnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/dcolnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/dcolnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/sybobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/sybobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/sybobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/syblnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/syblnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/syblnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/unictrobj.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/unictrobj.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/unictrobj.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f /tmp/mqslnk.sh ]
  then
    echo "" >> $LOGFILE
    echo "The content of file /tmp/mqslnk.sh is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat /tmp/mqslnk.sh >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f $USEROBJ_FILE ]
  then
    echo "" >> $LOGFILE
    echo "The content of file user_objects is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat $USEROBJ_FILE >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f ${USEROBJ_FILE}.mk ]
  then
    echo "" >> $LOGFILE
    echo "The content of file user_objects.mk is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat ${USEROBJ_FILE}.mk >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  if [ -f ${USEROPT_FILE}.mk ]
  then
    echo "" >> $LOGFILE
    echo "The content of file user_options.mk is:" >> $LOGFILE
    echo "......................." >> $LOGFILE
    cat ${USEROPT_FILE}.mk >> $LOGFILE
    echo "......................." >> $LOGFILE
  fi
  echo "" >> $LOGFILE
  echo "End of Debugging File Information:" >> $LOGFILE
  echo "" >> $LOGFILE
  echo "" >> $LOGFILE
  echo "Debugging Internal Flags:" >> $LOGFILE
  echo "" >> $LOGFILE
  echo "$appl_lang_1" appl_lang_1 >> $LOGFILE
  echo "$appl_lang_2" appl_lang_2 >> $LOGFILE
  echo "$appl_lang_3" appl_lang_3 >> $LOGFILE
  echo "$appl_lang_4" appl_lang_4 >> $LOGFILE
  echo "$rdbms_oracle" rdbms_oracle >> $LOGFILE
  echo "$rdbms_informix" rdbms_informix >> $LOGFILE
  echo "$rdbms_ingres" rdbms_ingres >> $LOGFILE
  echo "$rdbms_db2" rdbms_db2 >> $LOGFILE
  echo "$rdbms_cadatacom" rdbms_cadatacom >> $LOGFILE
  echo "$rdbms_sybase" rdbms_sybase >> $LOGFILE
  echo "$ebm_1" ebm_1 >> $LOGFILE
  echo "$ebm_2" ebm_2 >> $LOGFILE
  echo "$ebm_3" ebm_3 >> $LOGFILE
  echo "$ebm_4" ebm_4 >> $LOGFILE
  echo "$thirdp_1" thirdp_1 >> $LOGFILE
  echo "$thirdp_2" thirdp_2 >> $LOGFILE
  echo "$thirdp_3" thirdp_3 >> $LOGFILE
  echo "$userobj" userobj >> $LOGFILE
  echo "$useropt" useropt >> $LOGFILE
  echo "" >> $LOGFILE
  echo "End of Debugging Internal Flags:" >> $LOGFILE
  echo "" >> $LOGFILE
}

check_valid_selections()
{
  if [ "$appl_lang_2" = "$SELECTED" ]
  then
    if [ "$rdbms_informix" = "$SELECTED" ]
    then
      echo ""
      echo "#"
      echo "# ERROR. Informix RDBMS requires Micro Focus COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
    if [ "$rdbms_ingres" = "$SELECTED" ]
    then
      echo ""
      echo "#"
      echo "# ERROR. CA-OpenIngres RDBMS requires Micro Focus COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
    if [ "$rdbms_db2" = "$SELECTED" ]
    then
      echo ""
      echo "#"
      echo "# ERROR. DB2/6000 RDBMS requires Micro Focus COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
    if [ "$rdbms_cadatacom" = "$SELECTED" ]
    then
      echo ""
      echo "#"
      echo "# ERROR. CA-DATACOM requires Micro Focus COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
    if [ "$rdbms_sybase" = "$SELECTED" ]
    then
      echo ""
      echo "#"
      echo "# ERROR. Sybase RDBMS requires Micro Focus COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
  fi
}

save_options()
{
rm -f $KIXCFG
echo "appl_lang_1=\"$appl_lang_1\"" > $KIXCFG
echo "appl_lang_2=\"$appl_lang_2\"" >> $KIXCFG
echo "appl_lang_3=\"$appl_lang_3\"" >> $KIXCFG
echo "appl_lang_4=\"$appl_lang_4\"" >> $KIXCFG
echo "rdbms_oracle=\"$rdbms_oracle\"" >> $KIXCFG
echo "rdbms_informix=\"$rdbms_informix\"" >> $KIXCFG
echo "rdbms_ingres=\"$rdbms_ingres\"" >> $KIXCFG
echo "rdbms_db2=\"$rdbms_db2\"" >> $KIXCFG
echo "rdbms_cadatacom=\"$rdbms_cadatacom\"" >> $KIXCFG
echo "rdbms_sybase=\"$rdbms_sybase\"" >> $KIXCFG
echo "ebm_1=\"$ebm_1\"" >> $KIXCFG
echo "ebm_2=\"$ebm_2\"" >> $KIXCFG
echo "ebm_3=\"$ebm_3\"" >> $KIXCFG
echo "ebm_4=\"$ebm_4\"" >> $KIXCFG
echo "thirdp_1=\"$thirdp_1\"" >> $KIXCFG
echo "thirdp_2=\"$thirdp_2\"" >> $KIXCFG
echo "thirdp_3=\"$thirdp_3\"" >> $KIXCFG
echo "userobj=\"$userobj\"" >> $KIXCFG
echo "useropt=\"$useropt\"" >> $KIXCFG
chmod 666 $KIXCFG
}

build_conf_file()
{
 $KIXCLS
 echo "                           Build Current Configuration     $DATEVAR"
 echo "                           Build Current Configuration     $DATEVAR" >> $LOGFILE
 echo ""
 echo $N "# Reading Current Configuration $C"
 status=0
 check_valid_selections
 if [ $status -eq 0 ]
 then
  # begin valid selections {
  echo $N ".$C"
  # Checking for Application Language: Liant PL/I only
  if [ "$appl_lang_2" = "$SELECTED" ]
  then
    echo ""
    $UNIKIX/bin/kixpli
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for Application Language: Micro Focus COBOL and Liant PL/I
  if [ "$appl_lang_3" = "$SELECTED" ]
  then
    echo ""
    $UNIKIX/bin/kixpli
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: Oracle
  if [ "$rdbms_oracle" = "$SELECTED" ]
  then
    echo ""
    if [ "$appl_lang_2" = "$SELECTED" ]
    then
      $UNIKIX/bin/kixoracle "PLI_ONLY"
    else
      $UNIKIX/bin/kixoracle
    fi
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: Informix
  if [ "$rdbms_informix" = "$SELECTED" ]
  then
    echo ""
    if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
    then
    	$UNIKIX/bin/kixinformix "CBL"
    else
    	$UNIKIX/bin/kixinformix 
    fi
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: A-OpenIngres
  if [ "$rdbms_ingres" = "$SELECTED" ]
  then
    echo ""
    if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
    then
    	$UNIKIX/bin/kixingres "CBL"
    else
    	$UNIKIX/bin/kixingres 
    fi
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: DB2/6000
  if [ "$rdbms_db2" = "$SELECTED" ]
  then
    echo ""
    if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
    then
    	$UNIKIX/bin/kixdb2 "CBL"
    else
    	$UNIKIX/bin/kixdb2 
    fi
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: CA-DATACOM
  if [ "$rdbms_cadatacom" = "$SELECTED" ]
  then
    echo ""
    $UNIKIX/bin/kixdatacom
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for RDBMS: Sybase
  if [ "$rdbms_sybase" = "$SELECTED" ]
  then
    echo ""
    if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
    then
    	$UNIKIX/bin/kixsybase "CBL"
    else
    	$UNIKIX/bin/kixsybase 
    fi
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for Third Party Packages: CA-Unicenter Security
  if [ "$thirdp_1" = "$SELECTED" ]
  then
    echo ""
    echo "	\$(LIBDIR)/libsecurityCA.a \\" >>/tmp/unictrobj.sh
    echo "	\$(UNICENTER_HOME)/lib/libuni.a \\" >>/tmp/unictrobj.sh
    echo "/SECURITYOBJECTS=/r /tmp/unictrobj.sh" >> /tmp/config.current
    echo "s/all\:/all:	\$\(SECEXECUTABLES\)/" >> /tmp/config.current
    echo "/# no external security, by default/d" >> /tmp/config.current
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for Batch COBOL Runtime System
  ebm_rts
  echo $N ".$C"
  # Checking for Third Party Packages: MQSeries
  if [ "$thirdp_2" = "$SELECTED" ] || [ "$thirdp_3" = "$SELECTED" ]
  then
    echo ""
#    export thirdp_2 thirdp_3 SELECTED
    $UNIKIX/bin/kixmqs "+$SELECTED" "+$thirdp_2" "+$thirdp_3"
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  # Checking for User-Specific Objects
  if [ "$userobj" = "$SELECTED" ]
  then
    if test $BSD = YES
    then
       echo "s%USERSPECOBJECTS=%USERSPECOBJECTS= \\\\%" >>/tmp/config.current
    else
       echo 's%USERSPECOBJECTS=%USERSPECOBJECTS= \\\\%' >>/tmp/config.current
    fi
    echo '/USERSPECOBJECTS=/r ./user_objects.mk' >> /tmp/config.current 
  else
    sleep $TIMESLEEP
  fi
  echo $N ".$C"
  if [ "$useropt" = "$SELECTED" ]
  then
    if test $BSD = YES
    then
       echo "s%USERSPECOPTIONS=%USERSPECOPTIONS= \\\\%" >>/tmp/config.current
    else
       echo 's%USERSPECOPTIONS=%USERSPECOPTIONS= \\\\%' >>/tmp/config.current
    fi
    echo '/USERSPECOPTIONS=/r ./user_options.mk' >> /tmp/config.current
  else
    sleep $TIMESLEEP
  fi
  echo ""
  echo "Press Return to Continue"
  read risp
  $KIXCLS
  # Checking for Shared Library environment 
  if [ "$appl_lang_2" = "$SELECTED" -o "$appl_lang_4" = "$SELECTED" ]
  then
    # Begin Shared Library Environment {
    # This is required for Application Language: Liant PL/I only
    save_options
    # Note the save_options() is here so the kixconfig.cfg file will be 
    # copied in the Target Source Directory too
    . $UNIKIX/bin/kixvars_shr
    if [ "$TARGET_DIR" = "none" ]
    then
      echo $N "# Configuration Aborted, Select Option B Again"
      echo "Press Return to Continue"
      read risp
      rm -f /tmp/config.current
      rm -f /tmp/oraobj.sh /tmp/oralnk.sh
      rm -f /tmp/infobj.sh /tmp/inflnk.sh
      rm -f /tmp/ingobj.sh /tmp/inglnk.sh
      rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
      rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
      rm -f /tmp/sybobj.sh /tmp/syblnk.sh
      rm -f /tmp/unictrobj.sh
      rm -f /tmp/mqslnk.sh
    else
      echo "Creating Configuration File $TARGET_DIR/makefile"
      rm -f $TARGET_DIR/makefile $TARGET_DIR/install/makefile.tmp
      sed -f /tmp/config.current $TARGET_DIR/install/makefile.in \
                 >$TARGET_DIR/install/makefile.tmp
      grep -v '\$(COBOBJECTS)' $TARGET_DIR/install/makefile.tmp > $TARGET_DIR/makefile
      rm -f $TARGET_DIR/user/kxusrexit.o
      echo "#"
      echo "# Configuration File $TARGET_DIR/makefile Created"
      echo "#"
      print_debug
      build_executables
      CONFIG_BUILT=YES
      rm -f /tmp/config.current
      rm -f /tmp/oraobj.sh /tmp/oralnk.sh
      rm -f /tmp/infobj.sh /tmp/inflnk.sh
      rm -f /tmp/ingobj.sh /tmp/inglnk.sh
      rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
      rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
      rm -f /tmp/sybobj.sh /tmp/syblnk.sh
      rm -f /tmp/unictrobj.sh
      rm -f /tmp/mqslnk.sh
      rm -f $TARGET_DIR/install/makefile.tmp
    fi
    # End Shared Library Environment }
  else
    # Begin non-Shared Library Environment {
    # This is required for Application Language: Micro Focus COBOL
    # only or with Liant PL/I
    save_options
    # Note the save_options() is here so the kixconfig.cfg file will be 
    # copied in the Target Source Directory too
    . $UNIKIX/bin/kixvars
    if [ "$TARGET_DIR" = "none" ]
    then
      echo "#"
      echo $N "# ERROR. Configuration Aborted."
      echo "#"
      echo "Press Return to Continue. Select Option B Again"
      read risp
      rm -f /tmp/config.current
      rm -f /tmp/oraobj.sh /tmp/oralnk.sh
      rm -f /tmp/infobj.sh /tmp/inflnk.sh
      rm -f /tmp/ingobj.sh /tmp/inglnk.sh
      rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
      rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
      rm -f /tmp/sybobj.sh /tmp/syblnk.sh
      rm -f /tmp/unictrobj.sh
      rm -f /tmp/mqslnk.sh
    else
      echo "Creating Configuration File $TARGET_DIR/makefile"
      rm -f $TARGET_DIR/makefile
      sed -f /tmp/config.current $TARGET_DIR/install/makefile.in \
                   >$TARGET_DIR/makefile
      rm -f $TARGET_DIR/user/kxusrexit.o
      echo "#"
      echo "# Configuration File $TARGET_DIR/makefile Created"
      echo "#"
      print_debug
      build_executables
      CONFIG_BUILT=YES
      rm -f /tmp/config.current
      rm -f /tmp/oraobj.sh /tmp/oralnk.sh
      rm -f /tmp/infobj.sh /tmp/inflnk.sh
      rm -f /tmp/ingobj.sh /tmp/inglnk.sh
      rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
      rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
      rm -f /tmp/sybobj.sh /tmp/syblnk.sh
      rm -f /tmp/unictrobj.sh
      rm -f /tmp/mqslnk.sh
      rm -f $TARGET_DIR/install/makefile.tmp
    fi
    # End non-Shared Library Environment }
  fi
  # end valid selections }
 else
  echo "Press Return to Continue"
  read risp
 fi
}

print_error()
{
echo "#"  >> $LOGFILE
echo "# Sun MTP Configuration Aborted at `date`"  >> $LOGFILE
echo "#"  >> $LOGFILE
echo "# Sun MTP Configuration aborted! Logfile was $LOGFILE"
echo "# The Configuration File has not been built."
exit 1
}
#-------------------------------------------------------------------#
#  The following code defines clear screen function
#-------------------------------------------------------------------#
trap print_error 1 2 3 15
BSD=NO;export BSD
KIXCLS=clear
case `uname -m` in
      i386)
              KIXCLS='tput clear';;
      DPX/2300)
              KIXCLS='tput clear';;
      sun4)
#-----------------------Set echo name -----------------------------------#
        if test -d /usr/5bin
        then
           PATH=/usr/5bin:$PATH
        else
           BSD=YES;export BSD
        fi;;
      sun4m)
#-----------------------Set echo name -----------------------------------#
        if test -d /usr/5bin
	then
	    PATH=/usr/5bin:$PATH
	fi;;
esac
export KIXCLS

# ----------------------------------------------------------------------------
# - Check if UNIKIX variable is setup
# ----------------------------------------------------------------------------
if [ ! -n $UNIKIX ]; then
   echo "UNIKIX variable not set."
   echo "Set UNIKIX environment to Sun MTP directory"
   exit 1
fi

#-----------------------------------------------------------------------#
#  The following code is required for systems where echo always adds a  #
#  new line.  The code checks for new line suppressing and makes it as  #
#  variable to be used                                                  #
#-----------------------------------------------------------------------#
if  echo "\c" | grep c >$DEVNULL 2>&1; then    
    N='-n'
else
    C='\c'
fi
export N C
#-----------------------------------------------------------------------#
#-----------------------------------------------------------------------#
# Start with the Sun MTP Default Configuration
if [ -f $UNIKIX/lib/logofile ]
then
  $KIXCLS
  echo ""
  echo ""
  cat $UNIKIX/lib/logofile
  echo ""
  echo ""
  echo ""
fi  
rm -f /tmp/config.current
rm -f /tmp/oraobj.sh /tmp/oralnk.sh
rm -f /tmp/infobj.sh /tmp/inflnk.sh
rm -f /tmp/ingobj.sh /tmp/inglnk.sh
rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
rm -f /tmp/sybobj.sh /tmp/syblnk.sh
rm -f /tmp/pliobj.sh /tmp/plilnk.sh
rm -f /tmp/unictrobj.sh
rm -f /tmp/mqslnk.sh
sleep 2

main_loop=1

while [ $main_loop -ne 0 ]
do
# Begin Main Menu Loop {
# this line clears the screen 
$KIXCLS
DATEVAR=`date '+%m/%d/%Y   %H:%M:%S'`
export DATEVAR
echo "                           Configuration Utility           $DATEVAR"
echo " "
echo " "
echo "             D   Display Current Configuration"
echo "             R   Reset to Sun MTP Default Configuration"
echo " "
echo "             1   Application Languages"
echo "             2   RDBMS"
echo "             3   Batch COBOL Runtime System"
echo "             4   Third Party Packages"
echo "             5   User-Specific Objects"
echo "             6   User-Specific Linker/Compiler Options"
echo " "
echo "             B   Build Configuration File"
echo " "
echo " "
echo "             ?   Help"
echo "             Q   Quit"
echo " "
echo " "
echo "--------------------------------------------------------------------------------"
echo $N "Enter the option number corresponding to the selection you want: $C"
read opt
case $opt in
     R|r) rm -f /tmp/config.current
          rm -f /tmp/oraobj.sh /tmp/oralnk.sh
          rm -f /tmp/infobj.sh /tmp/inflnk.sh
          rm -f /tmp/ingobj.sh /tmp/inglnk.sh
          rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
          rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
          rm -f /tmp/sybobj.sh /tmp/syblnk.sh
          rm -f /tmp/pliobj.sh /tmp/plilnk.sh
          rm -f /tmp/unictrobj.sh
          rm -f /tmp/mqslnk.sh
          appl_lang_1="$SELECTED"
          appl_lang_2="$NOSELECTED"
          appl_lang_3="$NOSELECTED"
          appl_lang_4="$NOSELECTED"
          rdbms_oracle="$NOSELECTED"
          rdbms_informix="$NOSELECTED"
          rdbms_ingres="$NOSELECTED"
          rdbms_db2="$NOSELECTED"
          rdbms_cadatacom="$NOSELECTED"
          rdbms_sybase="$NOSELECTED"
          ebm_1="$SELECTED"
          ebm_2="$NOSELECTED"
          ebm_3="$NOSELECTED"
          ebm_4="$NOSELECTED"
          thirdp_1="$NOSELECTED"
          thirdp_2="$NOSELECTED"
          thirdp_3="$NOSELECTED"
          userobj="$NOSELECTED"
          useropt="$NOSELECTED"
        ;;
     1) Application_Lang_M
        ;;
     2) RDBMS_M
        ;;
     3) EBM_M
        ;;
     4) ThirdPart_M
        ;;
     5) UserObj_M
        ;;
     6) UserOpt_M
	;;
     D|d)
        display_choices
        ;;
     B|b)
       build_conf_file
       ;;
     "")
       ;;
# ----------------------------------------------------------------------------
# - Clean-up and exit
# ----------------------------------------------------------------------------
     Q|q)
          rm -f /tmp/config.current
          rm -f /tmp/oraobj.sh /tmp/oralnk.sh
          rm -f /tmp/infobj.sh /tmp/inflnk.sh
          rm -f /tmp/ingobj.sh /tmp/inglnk.sh
          rm -f /tmp/db2obj.sh /tmp/db2lnk.sh
          rm -f /tmp/dcoobj.sh /tmp/dcolnk.sh
          rm -f /tmp/sybobj.sh /tmp/syblnk.sh
          rm -f /tmp/pliobj.sh /tmp/plilnk.sh
          rm -f /tmp/unictrobj.sh
          rm -f /tmp/mqslnk.sh
          rm -f $TARGET_DIR/install/makefile.tmp
          if [ $CONFIG_BUILT = NO ] ; then
            echo "#"
            echo "# Warning. The Configuration File has not been built."
            echo "#          You need to select the B option."
            echo "#"
            echo "# Do you want to continue [Y/N]"
            echo "#"
            read risp
            case $risp in
              N|n)
                main_loop=0
              ;;
              *)
              ;;
            esac
          else
            main_loop=0
          fi
          ;;
# ----------------------------------------------------------------------------
# - HELP to explain options
# ----------------------------------------------------------------------------
     H|h|?) $KIXCLS
            ${PAGER-'/bin/more'} $UNIKIX/src/install/kixinstall.help
            echo "Press Return to Continue"
            read risp
     ;;
     *) echo "#"
        echo "# ERROR. Invalid Option"
        echo "#"
        echo "Press Return to Continue"
        read risp
     ;;
esac
# End Main Menu Loop }
done
save_options
# Note the options may be different from what has been copied in the
# Target Source Directories
echo "#"
echo "# Sun MTP Configuration successfully completed."
echo "#"
echo "# Logfile was $LOGFILE"
echo "#"
echo "#" >> $LOGFILE
echo "# Sun MTP Configuration successfully completed at `date`." >> $LOGFILE
echo "#" >> $LOGFILE
exit 0
