#!/bin/sh
# !/usr/local/bin/bash

#Using gcc instead of cc!
M_USE_GCC='gcc compiler will be used to compile C programs'
#Can't find C compiler! Exiting...
M_NO_COMPILER="C compiler is not installed! Can't configure the system. Exit"
#Choose compiler
Q_SHOISE_COMPILER='Please choose the C compiler:'
#Using $rets instead of cc!
M_USE_COMPILER='C compiler $rets will be used'
M_JAVA_NEED1='Install java v1.1.x to the /usr or /usr/local directory. If java v1.1.x
is already installed in your system, the JAVA_HOME environment variable should 
be assigned a value pointing to the java directory. After performing all the
above actions, start the RDBMS Linter SQL "configure" program from the' 
M_JAVA_NEED2='directory, and activate java support.'
M_M_INCORRECT_RUN="This procedure must be started from the Linter root directory."

[ -n "$repl_script" ] || repl_script="repl_script"

[ "$INSTALL_LANG" = "" ] && {
  [ -f scripts/lang ] && {
    i=0
    LANGUAGES=`cat scripts/lang`
    for L in "english" $LANGUAGES; do
      i=`expr $i + 1`
      echo "$i - $L"
    done
    echo "Select language please ( from 1 to $i ):"
    read lang
    i=0
    LLL="english"
    for L in "english" $LANGUAGES; do
      i=`expr $i + 1`
      [ "$i" = "$lang" ] && {
        LLL=$L
      }
    done
    [ "$LLL" = "english" ] || {
      INSTALL_LANG=$LLL
      export INSTALL_LANG
    }
  }
}

[ "$INSTALL_LANG" = "" ] || {
  [ -f configure."$INSTALL_LANG" ] && {
    . configure."$INSTALL_LANG"
  }
  [ -f scripts/configure."$INSTALL_LANG" ] && {
    . scripts/configure."$INSTALL_LANG"
  }
}


[ -f ./scripts/common.sh ] || {
    echo "$M_M_INCORRECT_RUN"
    exit 1
    }

rm -f $repl_script
rm -f config.comments

CONFIG=Definition
DEFPLATFORM=$CONFIG

. ./scripts/common.sh

push_path "configure"


#### Java ########################################################


#################### MAIN ######################################3

is_cross_systems
check_for_ar
check_for_ranlib
check_for_cc SEPARATE_DEFAULT_CC
check_for_gcc

[ "$CC" = "" ] && [ "$GCC" = "" ] && {
    say_comment "$M_NO_COMPILER"
    exit 1
}

make_java_need()
  {
  echo "#!/bin/sh
  xterm -e /bin/sh -c \"echo '"$M_JAVA_NEED1 `pwd` $M_JAVA_NEED2"'; sleep 15;exit\"
"> bin/jadm.sh
  chmod a+x bin/jadm.sh
  }

make_jadm_run_script()
  {
  echo '#!/bin/sh
LINTER_DIR='`pwd`'
JAVA_HOME='$JDK_DIR'
PATH=$LINTER_DIR/bin:$PATH
CLASSPATH=$LINTER_DIR/jadm/LinAdm.jar:$LINTER_DIR/classes/LinJdbc.jar:$LINTER_DIR/jadm/swingall.jar
#DISPLAY=myhost.mydonain:0.0
#DISPLAY=localhost:0.0
export JAVA_HOME CLASSPATH  DISPLAY LINTER_DIR PATH
cd $LINTER_DIR/jadm
${JAVA_HOME}/bin/java LinAdm.App
  ' > bin/jadm.sh
  chmod a+x bin/jadm.sh
  }

[ "$DEFAULT_CC" != "" ] && {
  DEFAULT_CC=`echo "$CC $GCC" | $AWKRUN '{ while(++i<=NF) { if ("A""'"$DEFAULT_CC"'" == "A"$i) print $i; }}'`  
}
if [ "$DEFAULT_CC" = "" ]; then
  DEFAULT_CC=`echo "$CC $GCC" | $AWKRUN '{ print $1; }'` 
  radiolist SHOISE_COMPILER " " "$CC $GCC" "$DEFAULT_CC"
  CC="$REDEFINE_PATH$rets$PLATFORM_SPECIFIC_CC_FLAG"
  rets=$CC
  say_comment "$M_USE_COMPILER"
else
  CC="$DEFAULT_CC"
  rets=$CC
  say_comment "$M_USE_COMPILER"
fi 

add_to_repl_script CC $CC
check_optimise

check_for_javacc
check_for_ld
check_for_make
check_for_awk
check_for_zip
check_for_gmcs
check_for_dmcs
check_for_gacutil
check_for_machine_config
check_for_md2_ver
check_pic_flags
pthread_support

[ -d "perl" ] && check_for_perl
[ -d "perl-dbi" -a 1"$no_perl" -eq 10 ] && check_for_dbi 

[ -d "php" ] && {
    support_php
    }

[ -d "python" ] && {
    python_config
    }

[ -d "ruby" ] && {
    ruby_config
    }

[ -d "dotnet2" ] && {
    support_dotnet2
    }

[ -d "tcl" ] && check_for_tcl && check_for_tk

JDK_DIR=
[ -d "classes" ] && if check_for_java; then make_jadm_run_script; else make_java_need; fi
[ -d odbc ] && support_odbcUNIX


cat <<EOF >>$repl_script
/.*/		{ print \$0 ;  next }
EOF

cp $CONFIG $CONFIG.old 
$AWKRUN  -f $repl_script $CONFIG.old >$CONFIG

rm -f $CONFIG.old  $repl_script 
#config.comments

[ -x postinstall ] && ./postinstall

exit 0


#--------------------------------------------------------------------

#set -x -v
sed '/\\/s//\\\\/g' $repl_script >repl_script.out

cat  repl_script.out | \
( while read patt1 patt2 action
do
	cmd="$AWKRUN '$patt1 $patt2 $action !$patt1 $patt2 { print \$0 }' $CONFIG > tmp"
	echo $cmd
	eval $cmd
	mv tmp $CONFIG
done
)

pop_path
rm -f $repl_script
rm -f config.comments
