#! /bin/sh

#FXISAM variable controls which version of the ISAM File Manager will be used.
#FXISAM has the following Valid Assignments: 
#
#       disam=DISAM
#       disam7=DISAM - Compatable locking for INFORMIX 7.2 and above
#       cisam=INFORMIX

FXISAM=cisam
FXISAM=disam7
FXISAM=disam
FXISAM=disam8

if [ "$1" != ""  -a  "$1" != "-r" ]
then
	echo "usage: sqlmake [-r]"
	exit 1
fi
if [ "$SQLDIR" = "" ]
then
	echo "SQLDIR must be set to the sqlflex directory"
	exit 1
fi

# Create Informix 7.1 locking compatable version of DISAM library
if test "$FXISAM" = "disam7"; then
   if test ! -d $SQLDIR/src/isam/$FXISAM; then
      mkdir $SQLDIR/src/isam/$FXISAM
      cd $SQLDIR/src/isam/disam
      rm -f *.o 2> /dev/null
      cp * $SQLDIR/src/isam/$FXISAM
      cd $SQLDIR/src/isam/$FXISAM
      cp isconfi7.h isconfig.h
      cp islock7.c islock.c
      fi
   fi
mkdir $SQLDIR/src/isam/$FXISAM    2> /dev/null
if test "$FXISAM" = "disam"; then
   if test  -d $SQLDIR/src/isam/disam7; then
      cd $SQLDIR/src/isam/disam7
      rm -f *.o 2> /dev/null
      fi
   fi
if test "$FXISAM" = "disam7"; then
   if test  -d $SQLDIR/src/isam/disam; then
      cd $SQLDIR/src/isam/disam
      rm -f *.o 2> /dev/null
      fi
   fi

if test "$FXISAM" = "cisam"; then
   rm $SQLDIR/lib/libisam.a
   rm $SQLDIR/bin/bcheck
   fi

mkdir $SQLDIR/lib $SQLDIR/bin 2> /dev/null

if test "$1" = "-r"; then
    rm -f $SQLDIR/bin/* 2> /dev/null
    rm -f $SQLDIR/lib/* 2> /dev/null
    cd $SQLDIR/src/isam/$FXISAM
    rm -f  *.o 2> /dev/null
    cd $SQLDIR/src/lib
    rm -f  *.o 2> /dev/null
    rm -f $SQLDIR/src/net/*.o 2> /dev/null
    cd $SQLDIR/src/sql
    rm -f  *.o 2> /dev/null
    cd $SQLDIR/src/xsql
    rm -f  *.o 2> /dev/null
    cd $SQLDIR/src/pre
    rm -f  *.o 2> /dev/null
    cd $SQLDIR/demo
    rm  -rf demo.dbs demo[12] demo[12].c *.o *.out
fi

cd $SQLDIR/unx
make -f makedcl.unx
if test $? -ne 0; then exit 1; fi

cd $SQLDIR/src/isam/$FXISAM
make -f makeisam.unx
if test $? -ne 0; then exit 1; fi


if test $? -ne 0; then exit 1; fi
cd $SQLDIR/src/lib
make  -f makelib.unx 
if test $? -ne 0; then exit 1; fi

cd $SQLDIR/src/sql
make  -f makesql.unx
if test $? -ne 0; then exit 1; fi

if [ "$SQLNOCS" != Y ]; then
   cd $SQLDIR/src/net
   make  -f makenet.unx
   if test $? -ne 0; then exit 1; fi
   cd $SQLDIR/src/sql
   make  -f makeserv.unx
   if test $? -ne 0; then exit 1; fi
fi

cd $SQLDIR/src/xsql
make  -f makexsql.unx
if test $? -ne 0; then exit 1; fi

#if test -r $SQLDIR/etc/xsql64; then
#   echo "Copying OLD SQLFLEX (xsql64) to bin directory"
#   cp $SQLDIR/etc/xsql64 $SQLDIR/bin
#fi 

# LIBFX.LIB  MUST EXIST BEFORE THIS IS DONE
cd $SQLDIR/src/isam/$FXISAM
make -f makechk.unx 

cd $SQLDIR/src/pre
make  -f makepre.unx
if test $? -ne 0; then exit 1; fi

cd $SQLDIR/demo
make  -f makedemo.unx
if test $? -ne 0; then exit 1; fi

rm -rf demo.dbs
if test -d demo.dbs; then
exit 0
fi
demo1
demo2
demoprog > /dev/null

echo 
echo    SQLFLEX successfully been compiled !!!! 
echo 
