#!/bin/sh

GCC_DIR="/bin /usr/bin /usr/local/bin /usr/share/bin /usr/sbin /usr/local/sbin /usr/local/share/bin"
INSTALL_DIR="/bin /usr/bin /usr/local/bin /usr/share/bin /usr/sbin /usr/local/sbin /usr/local/share/bin"
QT_INC_DIR="/usr/include /usr/include/qt /usr/include/qt2 /usr/X11R6/include /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/local/include /usr/local/include/qt /usr/local/include/qt2 /usr/local/qt/include /usr/local/qt2/include"
QT_LIB_DIR="/usr/lib /usr/lib/qt /usr/lib/qt2 /usr/X11R6/lib /usr/X11R6/lib/qt /usr/X11R6/lib/qt2 /usr/local/lib /usr/local/lib/qt /usr/local/lib/qt2 /usr/local/qt/lib /usr/local/qt2/lib"
QT_MOC_DIR="/bin /usr/bin /usr/X11R6/bin /usr/local/bin /usr/local/qt/bin /usr/local/qt2/bin"
GCC_PATH="NO"
INSTALL_PATH="NO"
QT_INCLUDE="NO"
QT_LIBRARY="NO"
QT_MOC="NO"
MAKEFILE="Makefile"

FILE="config.test"
CPP=${FILE}.cpp
MOC=${FILE}.cc
########################################

if [ ! -f "Makefile.in" ]
then
echo "Error: cannot find Makefile.in!"
exit 1;
fi

echo "#include <qglobal.h>">$CPP
echo "int main()">>$CPP
echo "{">>${CPP}
echo "  if(QT_VERSION>=200)return 0;">>${CPP}
echo "  return 1;">>${CPP}
echo "}">>${CPP}

echo -n "Checking for Gnu C Compiler... "
for i in $GCC_DIR
do 
  if [ -x "$i/c++" ]
  then 
     GCC_PATH="$i/c++"
  fi
done

if  [ "$GCC_PATH" = "NO" ]
then
echo "not found."
exit 1;
else 
echo "yes."
fi

echo -n "Checking for install... "
for i in $INSTALL_DIR
do 
  if [ -x "$i/install" ]
  then 
     INSTALL_PATH="$i/install"
  fi
done

if [ "$INSTALL_PATH" = "NO" ]
then
   echo "not found."
   exit 1;
else 
echo "yes."
fi

echo -n "Checking for Qt headers... "
for i in $QT_INC_DIR
do
  if [ -e "$i/qglobal.h" ]
  then
    $GCC_PATH -o ${FILE} -I$i ${CPP}
    if [ -e ${FILE} ]
    then
      ./${FILE}
      if [ $? = "0" ]
      then
        QT_INCLUDE=$i
	break
      fi
    fi
  fi
done
if [ "$QT_INCLUDE" = "NO" ]
then
echo "not found."
exit 1;
else
echo "yes."
rm -f ${FILE}
fi
######################################
echo -n "Checking for Qt libraries... "
for i in $QT_LIB_DIR
do
  if [ -e "$i/libqt2.so" ]
  then
    $GCC_PATH -o ${FILE} -I${QT_INCLUDE} -L${i} -lqt2 ${CPP}
    if [ -e ${FILE} ]
    then
      ./${FILE}
      if [ $? = "0" ]
      then
        QT_LIBRARY="-L$i -lqt2"
	break
      fi
    fi
  elif [ -e "$i/libqt.so" ]
  then
    $GCC_PATH -o ${FILE} -I${QT_INCLUDE} -L${i} -lqt ${CPP}
    if [ -e ${FILE} ]
    then
      ./${FILE}
      if [ $? = "0" ]
      then
        QT_LIBRARY="-L$i -lqt"
	break
      fi
    fi
  fi
done
if [ "$QT_LIBRARY" = "NO" ]
then
echo "not found."
exit 1;
else
echo "yes."
rm -f ${FILE}
fi
###############################################
echo "#include <qwidget.h>">${CPP}
echo "class TestClass:public QWidget">>${CPP}
echo "{">>${CPP}
echo "  Q_OBJECT">>${CPP}
echo "public:">>${CPP}
echo "  TestClass(QWidget *parent=0,char *name=0);">>${CPP}
echo "  ~TestClass();">>${CPP}
echo "};">>${CPP}
echo -n "Checking for Qt meta object... "
for i in $QT_MOC_DIR
do
  if [ -e "$i/moc2" ]
  then
    STR=`$i/moc2 ${CPP}|grep MOC|grep Qt`
    echo "#include <string.h>">${MOC}
    echo "#include <qglobal.h>">>${MOC}
    echo "int main()">>${MOC}
    echo "{">>${MOC}
    echo "  if(strstr(\"${STR}\",QT_VERSION_STR))return 0;">>${MOC}
    echo "  return 1;">>${MOC}
    echo "}">>${MOC}
    $GCC_PATH -o ${FILE} -I${QT_INCLUDE} ${MOC}
    if [ -e ${FILE} ]
    then
      ./${FILE}
      if [ $? = "0" ]
      then
        QT_MOC=$i/moc2
	break
      fi
    fi
  elif [ -e "$i/moc" ]
  then
    STR=`$i/moc ${CPP}|grep MOC|grep Qt`
    echo "#include <string.h>">${MOC}
    echo "#include <qglobal.h>">>${MOC}
    echo "int main()">>${MOC}
    echo "{">>${MOC}
    echo "  if(strstr(\"${STR}\",QT_VERSION_STR))return 0;">>${MOC}
    echo "  return 1;">>${MOC}
    echo "}">>${MOC}
    $GCC_PATH -o ${FILE} -I${QT_INCLUDE} ${MOC}
    if [ -e ${FILE} ]
    then
      ./${FILE}
      if [ $? = "0" ]
      then
        QT_MOC=$i/moc
	break
      fi
    fi
  fi
done
if [ "$QT_MOC" = "NO" ]
then
echo "not found."
exit 1;
else
echo "yes."
rm -f ${FILE} ${MOC} ${CPP}
fi
#################################################
echo -n "Creating Makefile... "
echo "CFLAGS = -O2 -pipe -I${QT_INCLUDE} -Isrc -I.">${MAKEFILE}
echo "LFLAGS = ${QT_LIBRARY}">>${MAKEFILE}
echo "MOC = ${QT_MOC}">>${MAKEFILE}
echo "CC = ${GCC_PATH}">>${MAKEFILE}
echo "INSTALL = ${INSTALL_PATH}">>${MAKEFILE}
cat "Makefile.in" >>${MAKEFILE}
echo "done"
echo
echo "Run 'make' to compile game."
