#!/bin/sh

PROG=src/evilvte

PROG_CUSTOM=`grep PROGRAM_NAME src/config.h | grep -v ^\/\/ | awk '{print $3}'`

if [ "$PROG_CUSTOM" != "" ]; then
  PROG=src/$PROG_CUSTOM
fi

if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" ]; then
  echo
  echo " * Options: --prefix=/usr/local (default)"
  echo "            --prefix=/usr"
  echo
  echo "            --detect-xtst (default)"
  echo "            --enable-xtst"
  echo "            --disable-xtst (VIRTUAL_KEYBOARD option will be disabled.)"
  echo
  echo "   Please edit [1m[33msrc/config.h[m to customize your options."
  echo
  exit
fi

rm -f src/config.o

MAKE=make
which gmake > /dev/null 2> /dev/null
if [ $? = 0 ]; then
  MAKE=gmake
fi

prefix="/usr/local"

PROCESS_XTST=2

for opt do
  case "$opt" in
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
  ;;
  --detect-xtst) PROCESS_XTST=$PROCESS_XTST:2
  ;;
  --enable-xtst) PROCESS_XTST=$PROCESS_XTST:1
  ;;
  --disable-xtst) PROCESS_XTST=$PROCESS_XTST:0
  ;;
  esac
done

STATUS_XTST=`echo $PROCESS_XTST | fold -w 1 | tail -n 1`

SUSE_GCC=`gcc -v 2>&1 | tr A-Z a-z | grep suse`

if [ "$SUSE_GCC" != "" ]; then
  SUSE_DETECTED=TRUE
else
  SUSE_DETECTED=FALSE
fi

VTEINC=`pkg-config --cflags vte`

if [ $? != 0 ]; then
  exit
else
  echo Prefix: [1m[33m$prefix[m
  if [ "$EVILVTE" != "" ]; then
    echo Configuration:[1m[31m $EVILVTE [m| sed -e 's/ min / minimum /' -e 's/ max / maximum /' -e 's/ test / testing /'
  else
    echo System is SUSE: $SUSE_DETECTED | sed -e 's/TRUE/[1m[32mTRUE[m/' -e 's/FALSE/[1m[31mFALSE[m/'
    echo Configuration:
    sed 's/\t/ /g' src/config.h | tr -s ' ' ' ' | sed 's/^ //' | grep ^\#define | sed 's~/\*~\n~g' | grep -v \*\/ | sed -e 's/TRUE/[1m[32mTRUE[m/' -e 's/FALSE/[1m[31mFALSE[m/'
    echo
    echo Please edit [1m[33msrc/config.h[m to customize your options.
    echo
  fi
fi

if [ "$EVILVTE" = "min" ]; then
  STATUS_XTST=0
fi

if [ "$STATUS_XTST" = "2" ]; then
  XTSTLIB=`pkg-config --libs xtst`

  if [ $? != 0 ]; then
    echo [1m[32mIt is fine[m, but VIRTUAL_KEYBOARD option will be disabled automatically.
    echo
  fi

  XTSTLIBTEST=`echo $XTSTLIB | grep Xtst`

  if [ "$XTSTLIBTEST" != "" ]; then
    XTST_DETECTED=TRUE
  else
    XTST_DETECTED=FALSE
  fi
fi

if [ "$STATUS_XTST" = "1" ]; then
  XTSTLIB="-L/usr/X11R6/lib -lXtst"
  XTST_DETECTED=TRUE
fi

bindir=$prefix/bin
mandir=$prefix/share/man/man1
deskdir=$prefix/share/applications
ICON_DIR=$prefix/share/pixmaps

if [ $prefix = /usr ]; then
  echo "OPTFLAGS=-Os" >> src/config.o
fi

EVILVTE_VERSION=`head -n 1 Changelog`

echo "CC=gcc" >> src/config.o
echo "MAKE=$MAKE" >> src/config.o
echo "VTEINC=$VTEINC" >> src/config.o
echo "prefix=$prefix" >> src/config.o
echo "bindir=\$(DESTDIR)$bindir" >> src/config.o
echo "mandir=\$(DESTDIR)$mandir" >> src/config.o
echo "deskdir=\$(DESTDIR)$deskdir" >> src/config.o
echo "ICON_DIR=$ICON_DIR" >> src/config.o
echo "ICON_DIR_INSTALL=\$(DESTDIR)$ICON_DIR" >> src/config.o
echo "LDLIBS=-L/usr/local/lib -lvte $XTSTLIB" >> src/config.o
echo "PROG=$PROG" >> src/config.o
echo "EVILVTE_VERSION=$EVILVTE_VERSION" >> src/config.o
echo "SUSE_DETECTED=$SUSE_DETECTED" >> src/config.o
echo "XTST_DETECTED=$XTST_DETECTED" >> src/config.o
