#! /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
DCHOME=`echo $DATACOM`+
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"
  userbatchobj="$NOSELECTED"
else
  appl_lang_4="$NOSELECTED"
  thirdp_3="$NOSELECTED"
  userbatchobj="$NOSELECTED"
  . $KIXCFG
#Start of BT=4684434 -- MRG_INSTALL_OBSOLETE 
# is MRG_INSTALL_OBSOLETE not set ?
  if [ -z "$MRG_INSTALL_OBSOLETE" ]
  then
# is user trying to use informix, ingress or Unicenter without flag set ?
    if [ "$rdbms_informix" = "$SELECTED" -o "$rdbms_ingres" = "$SELECTED" -o "$thirdp_1" = "$SELECTED" ]
      then
        echo "# Obsoleted feature requested, Please contact Sun Technical Support"
        echo "# Obsoleted feature requested, Please contact Sun Technical Support"  >> $LOGFILE
        echo "rdbms_informix=$rdbms_informix" >> $LOGFILE
        echo "rdbms_ingres=$rdbms_ingres"     >> $LOGFILE
        echo "unicenter thirdp_1=$thirdp_1"   >> $LOGFILE
        echo "#"  >> $LOGFILE
        echo "# Sun MTP Configuration Aborted at `date`"  >> $LOGFILE
        echo "#"  >> $LOGFILE
        echo "# Sun MTP Configuration Aborted! Logfile was $LOGFILE"
        exit 1
    fi
  fi
#End   of BT=4684434 -- MRG_INSTALL_OBSOLETE
fi

build_executables()
{
echo "Do you want to build the Sun MTP executables ? [Y/N]"
read risp
case $risp in
  Y|y)
      $KIXCLS

      if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
        then
        COBOL_env_chek
      fi

      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 "COBOL"
fi
if [ "$appl_lang_2" = "$SELECTED" ]
then
   echo "Liant PL/I"
fi
if [ "$appl_lang_3" = "$SELECTED" ]
then
   echo "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\", Cobol \"INDEXED\" Files"
fi
if [ "$ebm_3" = "$SELECTED" ]
then
   echo "Cobol \"RELATIVE\", Sun MTP VSAM \"INDEXED\" Files"
fi
if [ "$ebm_4" = "$SELECTED" ]
then
   echo "Cobol \"RELATIVE/INDEXED/SEQUENTIAL\" Files"
   echo "                                 and"
   echo "                  Sun MTP VSAM \"RRDS/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 "............................."
   if [ "$userbatchobj" = "$SELECTED" ]
   then
        echo "Include User specified objects for batch"
   else
        echo "Do not Include User specified objects for batch"
   fi
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
}

MQ_env_chek()
{
 if [ "$thirdp_2" = "$SELECTED" -o "$thirdp_3" = "$SELECTED" ]
 then
            if [ -z "$MQSPATH" ]
            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 "ERROR. MQSPATH=$MQSPATH directory not found" >> $LOGFILE
              echo "#"
              echo "# ERROR. MQSPATH=$MQSPATH directory not found"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              export MQSPATH
            fi
 fi
}

ORACLE_env_chek()
{
 if [ "$rdbms_oracle" = "$SELECTED" ]
 then
            if [ -z "$ORACLE_HOME" ]
            then
	      echo "ERROR. No ORACLE_HOME variable set." >> $LOGFILE
              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 "ERROR. ORACLE_HOME $ORACLE_HOME directory not found." >> $LOGFILE
                echo "#"
                echo "# ERROR. ORACLE_HOME $ORACLE_HOME directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              fi
            fi
 fi
}

DB2_env_chek()
{
 if [ "$rdbms_db2" = "$SELECTED" ]
 then
            if [ -z "$INSTHOME" ]
            then
              echo "ERROR. No INSTHOME variable set. Set INSTHOME variable to  DB2/60000 directory" >> $LOGFILE
              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 "ERROR. INSTHOME $INSTHOME directory not found" >> $LOGFILE
                echo "#"
                echo "# ERROR. INSTHOME $INSTHOME directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              fi
            fi
 fi
}

SYBASE_env_chek()
{
 if [ "$rdbms_sybase" = "$SELECTED" ]
 then
            if [ -z "$SYBASE" ]
            then
              echo "ERROR. No SYBASE variable set. Set SYBASE variable to Sybase directory" >> $LOGFILE
              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 "ERROR. SYBASE $SYBASE directory not found" >> $LOGFILE
                echo "#"
                echo "# ERROR. SYBASE $SYBASE directory not found"
                echo "#"
                echo "Press Return to Continue"
                read risp
              fi
            fi
 fi
}

INFORMIX_env_chek()
{
 if [ "$rdbms_informix" = "$SELECTED" ]
 then
            if [ -z "$MRG_INSTALL_OBSOLETE" ]
            then
              echo "#"
              echo "# ERROR: Invalid Option"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ -z "$INFORMIXDIR" ];
              then
                echo "ERROR. No INFORMIXDIR variable set. Set INFORMIXDIR variable to Informix directory" >> $LOGFILE
                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 "ERROR. INFORMIXDIR $INFORMIXDIR directory not found" >> $LOGFILE
                  echo "#"
                  echo "# ERROR. INFORMIXDIR $INFORMIXDIR directory not found"
                  echo "#"
                  echo "Press Return to Continue"
                  read risp
                fi
              fi
            fi
 fi
}

INGRES_env_chek()
{
 if [ "$rdbms_ingres" = "$SELECTED" ]
 then
            if [ -z "$MRG_INSTALL_OBSOLETE" ]
            then
              echo "#"
              echo "# ERROR: Invalid Option"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ -z "$II_SYSTEM" ];
              then
                echo "ERROR. No II_SYSTEM variable set. Set II_SYSTEM variable to Ingress directory" >> $LOGFILE
                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 "ERROR. II_SYSTEM/ingres $II_SYSTEM/ingres directory not found" >> $LOGFILE
                  echo "#"
                  echo "# ERROR. II_SYSTEM/ingres $II_SYSTEM/ingres directory not found"
                  echo "#"
                  echo "Press Return to Continue"
                  read risp
                fi
              fi
            fi
 fi
}

PLI_env_chek()
{

 if [ "$appl_lang_2" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
 then
   if [ $PLIHOME = + ]
   then
     echo "ERROR. No LPI_PRODUCT_DIR variable is set. Set LPI_PRODUCT_DIR variable to PL/I" >> $LOGFILE
     echo "#"
     echo "# ERROR. No LPI_PRODUCT_DIR variable is set. Set LPI_PRODUCT_DIR variable to PL/I"
     echo "#"
     echo "Do you want to continue? [Y/N]"
     read risp
     case $risp in
       N|n)
       echo "Sun MTP Configuration Abandoned"
       exit 1
       ;;
       *)
       ;;
     esac
   else
     if test ! -d $LPI_PRODUCT_DIR
     then
       echo "ERROR. LPI_PRODUCT_DIR=$LPI_PRODUCT_DIR directory not found" >> $LOGFILE
       echo "#"
       echo "# ERROR. LPI_PRODUCT_DIR=$LPI_PRODUCT_DIR directory not found"
       echo "#"
       echo "Do you want to continue? [Y/N]"
       read risp
       case $risp in
         N|n)
         echo "Sun MTP Configuration Abandoned"
         exit 1
         ;;
         *)
         ;;
       esac
     fi
   fi
 fi

}
COBOL_env_chek()
{
 if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
 then
   if test "$COBDIR" = ""; 
   then
     echo "ERROR. COBDIR variable not set." >> $LOGFILE
     echo "#"
     echo "# ERROR. COBDIR variable not set."
     echo "#"
     echo "Do you want to continue? [Y/N]"
     read risp
     case $risp in
       N|n)
       echo "Sun MTP Configuration Abandoned"
       exit 1
       ;;
       *)
       ;;
     esac
   else
     if test ! -d $COBDIR
     then
       echo "ERROR. COBDIR=$COBDIR directory not found" >> $LOGFILE
       echo "#"
       echo "# ERROR. COBDIR=$COBDIR directory not found"
       echo "#"
       echo "Do you want to continue? [Y/N]"
       read risp
         case $risp in
         N|n)
         echo "Sun MTP Configuration Abandoned"
         exit 1
         ;;
         *)
         ;;
       esac
     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"  >> $LOGFILE
	 echo "#"
         echo "# COBOL not installed in 32-bit mode"
	 echo "# Continuation not recommended from here!"
	 echo "# Unpredictable results may occur!"
	 echo "#"
         echo "Do you want to continue? [Y/N]"
         read risp
         case $risp in
           N|n)
           echo "Sun MTP Configuration Abandoned"
           exit 1
           ;;
           *)
           ;;
         esac
       fi
     fi
   fi
 fi
 
}

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   COBOL  & C  < Default >"
echo ""
echo "         $appl_lang_2    2   Liant PL/I & C"
echo ""
echo "         $appl_lang_3    3   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)
           # Selection is COBOL and C
            appl_lang_1="$SELECTED"
            appl_lang_2="$NOSELECTED"
            appl_lang_3="$NOSELECTED"
            appl_lang_4="$NOSELECTED"
          ;;
          2)
           # Selection is PL/I and C
            appl_lang_1="$NOSELECTED"
            appl_lang_2="$SELECTED"
            appl_lang_3="$NOSELECTED"
            appl_lang_4="$NOSELECTED"
          ;;
          3)
           # Selection is PL/I COBOL and C
            appl_lang_1="$NOSELECTED"
            appl_lang_2="$NOSELECTED"
            appl_lang_3="$SELECTED"
            appl_lang_4="$NOSELECTED"
          ;;
          4)
           # Selection is C only
            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 }

	    COBOL_env_chek
	    PLI_env_chek

# End Application_Lang Menu loop }
done
}

UserObj_M()
{
CONFIG_BUILT=NO
userobj="$NOSELECTED"
userbatchobj="$NOSELECTED"
userobjtemp=/tmp/userobj.$$
userobjexists=0
userobjmkexists=0
$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
    $userobjexists = 1
  fi
  vi $userobjtemp
  cat $userobjtemp | grep -v "^#" > $USEROBJ_FILE
  if [ Suserobjexists != 1 ]
  then
    chmod 666 $USEROBJ_FILE
  fi
  if [ -s $USEROBJ_FILE ]
  then
    rm $userobjtemp
    if [ -f ${USEROBJ_FILE}.mk ]
    then
      $userobjmkexists = 1
    fi
    sed -e 's/$/ \\/' < $USEROBJ_FILE > ${USEROBJ_FILE}.mk
    if [ $userobjmkexists != 1 ]
    then
      chmod 666 ${USEROBJ_FILE}.mk
    fi
    if [ -s $USEROBJ_FILE.mk ]
    then
      echo "./install/kxusrobjdum.o" >> ${USEROBJ_FILE}.mk
      userobj="$SELECTED"
      $KIXCLS
      echo "Do you want to Include User specified objects for batch executables as well ? [Y/N]"
      read risp
      case $risp in
            Y|y)
                 userbatchobj="$SELECTED"
                 ;;
      esac
      $KIXCLS
    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.$$
useroptexists=0
useroptmkexists=0
$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
    $useroptexists = 1
  fi
  vi $useropttemp
  cat $useropttemp | grep -v "^#" > $USEROPT_FILE
  if [ $useroptexists != 1 ]
  then
    chmod 666 $USEROPT_FILE
  fi
  useropt="$SELECTED"


  if [ -s $USEROPT_FILE ]
  then
    rm $useropttemp
    if [ -f ${USEROPT_FILE}.mk ]
    then
      $useroptmkexists = 1
    fi
    sed -e 's/$/ \\/' < $USEROPT_FILE > ${USEROPT_FILE}.mk
    if [ $useroptmkexists != 1 ]
    then
      chmod 666 ${USEROPT_FILE}.mk
    fi
#    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\", Cobol \"INDEXED\" Files"
echo ""
echo "         $ebm_3    3   Cobol \"RELATIVE\", Sun MTP VSAM \"INDEXED\" Files"
echo ""
echo "         $ebm_4    4   Cobol \"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         (COBOL, C, or Liant PL/I)"
#Start of BT=4684434 -- MRG_INSTALL_OBSOLETE
echo "         $rdbms_db2    2   DB2/6000 RDBMS       (COBOL or C)"
echo "         $rdbms_sybase    3   Sybase RDBMS         (COBOL or C)"
# is MRG_INSTALL_OBSOLETE not set ?
if [ -z "$MRG_INSTALL_OBSOLETE" ]
then
  echo ""
  echo ""
else
  echo "         $rdbms_informix    4   Informix On-Line     (COBOL only)"
  echo "         $rdbms_ingres    5   CA-OpenIngres RDBMS  (COBOL only)"
fi
#End   of BT=4684434 -- MRG_INSTALL_OBSOLETE
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)
#Start of BT=4684434 -- MRG_INSTALL_OBSOLETE
           rdbms_oracle="$SELECTED"
	   ORACLE_env_chek
           ;;
          2)
           rdbms_db2="$SELECTED"
	   DB2_env_chek
           ;;
          3)
           rdbms_sybase="$SELECTED"
	   SYBASE_env_chek
           ;;
          4)
           rdbms_informix="$SELECTED"
	   INFORMIX_env_chek
           ;;
          5)
           rdbms_ingres="$SELECTED"
	   INGRES_env_chek
           ;;
          R|r|"")
           rdbms_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case RDBMS_M }

#End   of BT=4684434 -- MRG_INSTALL_OBSOLETE

# 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 ""
#Start of BT=4684434 -- MRG_INSTALL_OBSOLETE
echo "         $thirdp_2    1   MQSeries"
echo ""
echo "         $thirdp_3    2   MQSeries with transactional support"
echo ""
# is MRG_INSTALL_OBSOLETE not set ?
if [ -z "$MRG_INSTALL_OBSOLETE" ]
then                                           
echo ""
else
  echo "         $thirdp_1    3   CA-Unicenter Security"
fi
#End   of BT=4684434 -- MRG_INSTALL_OBSOLETE
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"
            ;;
          [12])
              if [ $opt -eq 2 ]
              then
                 thirdp_3="$SELECTED"
                 thirdp_2="$NOSELECTED"
              else
                 thirdp_3="$NOSELECTED"
                 thirdp_2="$SELECTED"
              fi
            ;;
#Start of BT=4684434 -- MRG_INSTALL_OBSOLETE
          2)
            thirdp_1="$SELECTED"
            ;;
          "")
           third_part_loop=0
          ;;
          *)
           echo "#"
           echo "# ERROR: Invalid Option"
           echo "#"
           echo "Press Return to Continue"
           read risp
          ;;
esac
# End Case ThirdPart_M }

 MQ_env_chek

 if [ "$thirdp_1" = "$SELECTED" ]
 then
            if [ -z "$MRG_INSTALL_OBSOLETE" ]
            then
              echo "#"
              echo "# ERROR: Invalid Option"
              echo "#"
              echo "Press Return to Continue"
              read risp
            else
              if [ -z "$UNICENTER_HOME" ]
              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
                fi
              fi
            fi
 fi
#End   of BT=4684434 -- MRG_INSTALL_OBSOLETE
# 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 "$userbatchobj" userbatchobj >> $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 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 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 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 COBOL environment."
      echo "#        Select option 1 or 3 under Application Languages."
      echo "#"
      status=1
    fi
#START BT=4797405 Unable to Select Language 2 PL/I and C
#   if [ "$rdbms_sybase" = "$SELECTED" ]
#   then
#     echo ""
#     echo "#"
#     echo "# ERROR. Sybase RDBMS requires COBOL environment."
#     echo "#        Select option 1 or 3 under Application Languages."
#     echo "#"
#     status=1
#   fi
#END   BT=4797405 Unable to Select Language 2 PL/I and C
  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
echo "userbatchobj=\"$userbatchobj\"" >> $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: 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
#Start of BT=4653490 -- C only Oracle Support
      if [ "$appl_lang_4" = "$SELECTED" ]
      then
        $UNIKIX/bin/kixoracle "C_ONLY"
      else
        $UNIKIX/bin/kixoracle "COBOL"
      fi
    fi
#End   of BT=4653490 -- C only Oracle Support
  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
    if [ "$appl_lang_1" = "$SELECTED" -o "$appl_lang_3" = "$SELECTED" ]
    then
       $UNIKIX/bin/kixmqs "+$SELECTED" "+$thirdp_2" "+$thirdp_3" "CBL"
    else
       $UNIKIX/bin/kixmqs "+$SELECTED" "+$thirdp_2" "+$thirdp_3"
    fi
    rm -f $TARGET_DIR/rdbms/kxmqseries.o
  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
       echo "s%TRANSPECOBJECTS=%TRANSPECOBJECTS= \${USERSPECOBJECTS}%" >>/tmp/config.current
    else
       echo 's%USERSPECOBJECTS=%USERSPECOBJECTS= \\\\%' >>/tmp/config.current
       echo "s%TRANSPECOBJECTS=%TRANSPECOBJECTS= \${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
  if [ "$userbatchobj" = "$SELECTED" ]
  then
    if test $BSD = YES
    then
       echo "s%VSAMSPECOBJECTS=%VSAMSPECOBJECTS= \${USERSPECOBJECTS}%" >>/tmp/config.current
    else
       echo "s%VSAMSPECOBJECTS=%VSAMSPECOBJECTS= \${USERSPECOBJECTS}%" >>/tmp/config.current
    fi
  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/trans/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: 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/trans/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;;

      sun4u)
        if test -d /usr/5bin
        then
           PATH=/usr/5bin:$PATH
        else
          if test -d /usr/bin
          then
             PATH=/usr/bin:$PATH
          else
           BSD=YES;export BSD
          fi
        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

# Bug 4881866 - MTP 8.0 should work only with Solaris 5.8 and over


case `uname -s` in
         SunOS)
                 ostype=`uname -m | cut -c1-4`
                 if [ "$ostype" = "sun4" ]
                 then 
                    Ver=`uname -r | cut -f 2 -d '.'`
                    if [ "$Ver" -lt 8 ]
                    then
                       echo "FATAL - The minimum release supported by MTP is Solaris 8, exiting ... "
                       sleep 10
                       exit 1
                    fi
                 fi
                 ;;
         AIX)
                 osver=`uname -v`
                 if [ "$osver" -lt 5 ]
                 then
                    echo "FATAL - The minimum release supported by MTP is AIX 5.2, exiting ... "
                    sleep 10
                    exit 1
                 fi
                 if [ "$osver" = 5 ]
                 then
                    osrel=`uname -r`
                    if [ "$osrel" -lt 2 ]
                    then
                       echo "FATAL - The minimum release supported by MTP is AIX 5.2, exiting ... "
                       sleep 10
                       exit 1
                    fi
                 fi

                 ;;
         *)
                 ;;
         esac

#-----------------------------------------------------------------------#
#  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
#-----------------------------------------------------------------------#
# We will need a C compiler other than the /usr/ucb/cc                  #
#-----------------------------------------------------------------------#
KIXCC=`type cc`
KIXCC_COND=$?
if [ $KIXCC_COND -eq 0 ]
then 
   KIXUCBCC=`echo $KIXCC|grep -i \/usr\/ucb\/cc`
   KIXUCBCC_COND=$?
fi
if [ $KIXCC_COND -eq 1 ]
then 
   echo "ERROR:  Your current environment does not have a C compiler installed".
   echo "        kixinstall build process will not work without a C compiler"
   echo " "
   echo "        Please install the C language package before proceeding with kixinstall"
   echo " "
   echo "        Terminating the kixinstall process."
   exit 1
else
   if [ $KIXUCBCC_COND -eq 0 ]
   then
      echo "ERROR:  Your current environmnet has /usr/ucb/cc as the C compiler"
      echo "        MTP binaries will not work with this C compiler"
      echo " "
      echo "        Please reset your PATH to include a MTP supported C compiler"
      echo " "
      echo "        Terminating the kixinstall process."
      exit 1
   fi
fi
#-----------------------------------------------------------------------#
# 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
          rm -f user_objects user_objects.mk
          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
