#!/bin/sh

if [ "$1" = "-h" ]; then
  echo Options:
  echo "  --prefix=path     prefix path to install hydra and its datafiles to"
  echo "  --help            this here"
  exit 0
fi
if [ "$1" = "--help" ]; then
  echo Options:
  echo "  --prefix=path     path to install hydra and its datafiles to"
  echo "  --help            this here"
  exit 0
fi

echo
echo "Starting hydra auto configuration ..."
rm -f Makefile.in
PREFIX=""
SSL_PATH=""
SSL_IPATH=""
CRYPTO_PATH=""
SAPR3_PATH=""
SAPR3_IPATH=""
SSH_PATH=""
SSH_IPATH=""
NSL_PATH=""
SOCKET_PATH=""
MANDIR=""
LIBDIRS=`cat /etc/ld.so.conf 2> /dev/null`
STRIP="strip"
echo

echo "Checking for openssl (libssl/ssl.h) ..."
for i in  $LIBDIRS /lib  /usr/lib /usr/local/lib /opt/local/lib \
/*ssl /usr/*ssl /opt/*ssl /usr/local/*ssl /opt/local/*ssl \
/*ssl/lib /usr/*ssl/lib /opt/*ssl/lib /usr/local/*ssl/lib /opt/local/*ssl/lib .
do
    if [ "X" = "X$SSL_PATH" ]; then
        if [ -f "$i/libssl.so" -o -f "$i/libssl.dylib" ]; then
            SSL_PATH="$i"
        fi
    fi
    if [ "X" = "X$SSL_PATH" ]; then
        TMP_LIB=`/bin/ls $i/libssl.* 2> /dev/null | grep libssl.`
        if [ -n "$TMP_LIB" ]; then
          SSL_PATH="$i"
        fi
    fi
    if [ "X" = "X$CRYPTO_PATH" ]; then
        if [ -f "$i/libcrypto.so" -o -f "$i/libcrypto.dylib" ]; then
            CRYPTO_PATH="$i"
        fi
    fi
    if [ "X" = "X$CRYPTO_PATH" ]; then
        TMP_LIB=`/bin/ls $i/libcrypto.* 2> /dev/null | grep libcrypto.`
        if [ -n "$TMP_LIB" ]; then
          CRYPTO_PATH="$i"
        fi
    fi
done

for i in /usr/local/include /*ssl/include /usr/include \
/opt/*ssl/include /usr/*ssl/include /usr/local/*ssl/include .
do
    if [ "X" = "X$SSL_IPATH" ]; then
        if [ -f "$i/openssl/ssl.h" ]; then
            SSL_IPATH="$i"
        fi
    fi
done

if [ "X" = "X$SSL_PATH" ]; then
    SSL_IPATH=""
    CRYPTO_PATH=""
fi
if [ "X" = "X$SSL_IPATH" ]; then
    SSL_PATH=""
    CRYPTO_PATH=""
fi
if [ -n "$SSL_PATH" ]; then
    echo "                                    ... found"
fi
if [ "X" = "X$SSL_PATH" ]; then
    echo "                                    ... NOT found, SSL support disabled"
    echo "Get it from http://www.openssl.org"
fi
if [ "$SSL_IPATH" = "/usr/include" ]; then
    SSL_IPATH=""
fi

echo "Checking for SAP/R3 (librfc/saprfc.h) ..."
for i in  $LIBDIRS /lib  /usr/lib /usr/local/lib /opt/local/lib .
do
    if [ "X" = "X$SAPR3_PATH" ]; then
        if [ -f "$i/librfc.a" -o -f "$i/librfc.dylib" ]; then
            SAPR3_PATH="$i"
        fi
    fi
    if [ "X" = "X$SAPR3_PATH" ]; then
        TMP_LIB=`/bin/ls $i/librfc.* 2> /dev/null | grep librfc.`
        if [ -n "$TMP_LIB" ]; then
          SAPR3_PATH="$i"
        fi
    fi
done
for i in /usr/local/include /*ssl/include /usr/include .
do
    if [ "X" = "X$SAPR3_IPATH" ]; then
        if [ -f "$i/saprfc.h" ]; then
            SAPR3_IPATH="$i"
        fi
    fi
done
if [ "X" = "X$SAPR3_PATH" ]; then
    SAPR3_IPATH=""
fi
if [ "X" = "X$SAPR3_IPATH" ]; then
    SAPR3_PATH=""
fi
if [ -n "$SAPR3_PATH" ]; then
    echo "                                      ... found"
fi
if [ "X" = "X$SAPR3_PATH" ]; then
    echo "                                      ... NOT found, module sapr3 disabled"
    echo "Get it from http://www.sap.com/solutions/netweaver/linux/eval/index.asp"
fi
if [ "$SAPR3_IPATH" = "/usr/include" ]; then
    SAPR3_IPATH=""
fi

echo "Checking for libssh (libssh/libssh.h) ..."
for i in  $LIBDIRS /lib  /usr/lib /usr/local/lib /opt/local/lib .
do
    if [ "X" = "X$SSH_PATH" ]; then
        if [ -f "$i/libssh.so" -o -f "$i/libssh.dylib" ]; then
            SSH_PATH="$i"
        fi
    fi
    if [ "X" = "X$SSH_PATH" ]; then
        TMP_LIB=`/bin/ls $i/libssh.* 2> /dev/null | grep libssh.`
        if [ -n "$TMP_LIB" ]; then
          SSH_PATH="$i"
        fi
    fi
done
for i in /usr/local/include /*ssl/include /usr/include .
do
    if [ "X" = "X$SSH_IPATH" ]; then
        if [ -f "$i/libssh/libssh.h" ]; then
            SSH_IPATH="$i"
        fi
    fi
done
if [ "X" = "X$SSH_PATH" ]; then
    SSH_IPATH=""
fi
if [ "X" = "X$SSH_IPATH" ]; then
    SSH_PATH=""
fi
if [ -n "$SSH_PATH" ]; then
    echo "                                      ... found"
fi
if [ "X" = "X$SSH_PATH" ]; then
    echo "                                      ... NOT found, module ssh2 disabled"
    echo "Get it from http://0xbadc0de.be/projects/sshlib.html/"
fi
if [ "$SSH_IPATH" = "/usr/include" ]; then
    SSH_IPATH=""
fi


SYS=`uname`
if [ "$SYS" = "SunOS" ]; then
    echo "Checking for Solaris libraries ..."
    for i in  /lib /usr/lib /usr/local/lib $LIBDIRS .
    do
        if [ "X" = "X$NSL_PATH" ]; then
            if [ -f "$i/libnsl.so" ]; then
                NSL_PATH="$i"
            fi
        fi
        if [ "X" = "X$SOCKET_PATH" ]; then
            if [ -f "$i/libsocket.so" ]; then
                SOCKET_PATH="$i"
            fi
        fi
        if [ "X" = "X$RESOLV_PATH" ]; then
            if [ -f "$i/libresolv.so" ]; then
                RESOLV_PATH="$i"
            fi
        fi
    done
    if [ "X" = "X$NSL_PATH" ]; then
        echo "NSL library not found, which is needed on Solaris."
    fi
    if [ "X" = "X$SOCKET_PATH" ]; then
        echo "Socket library not found, which is needed on Solaris."
    fi
    if [ "X" = "X$RESOLV_PATH" ]; then
        echo "Resolv library not found, which is needed on Solaris."
    fi
fi

echo
XDEFINES=""
XLIBS=""
XLIBPATHS=""
XIPATHS=""

if [ -n "$SSL_PATH" -o -n "$CRYPTO_PATH" -o -n "$NSL_PATH" -o -n "$SOCKET_PATH" -o -n "$RESOLV_PATH" -o -n "$SAPR3_PATH" -o -n "$SSH_PATH" ]; then
    XLIBPATHS="-L/usr/lib -L/usr/local/lib -L/lib"
fi
if [ -n "$SSL_PATH" ]; then
    XDEFINES="$XDEFINES -DLIBOPENSSL"
fi
if [ -n "$SAPR3_PATH" ]; then
    XDEFINES="$XDEFINES -DLIBSAPR3"
fi
if [ -n "$SSH_PATH" ]; then
    XDEFINES="$XDEFINES -DLIBSSH"
fi
for i in $SSL_PATH $CRYPTO_PATH $SSH_PATH $NSL_PATH $SOCKET_PATH $RESOLV_PATH $SAPR3_PATH; do
    XLIBPATHS="$XLIBPATHS -L$i"
done
if [ -n "$SSL_IPATH" ]; then
    XIPATHS="-I$SSL_IPATH"
fi
if [ -n "$SAPR3_IPATH" ]; then
    XIPATHS="$XIPATHS -I$SAPR3_IPATH"
fi
if [ -n "$SSH_IPATH" ]; then
    XIPATHS="$XIPATHS -I$SSH_IPATH"
fi
if [ -n "$SSL_PATH" ]; then
    XLIBS="$XLIBS -lssl"
fi
if [ -n "$SAPR3_PATH" ]; then
    XLIBS="$XLIBS -ldl -lrfc"
fi
if [ -n "$SSH_PATH" ]; then
    XLIBS="$XLIBS -lssh"
fi
if [ -n "$CRYPTO_PATH" ]; then
    XLIBS="$XLIBS -lcrypto"
fi
if [ -n "$NSL_PATH" ]; then
    XLIBS="$XLIBS -lnsl"
fi
if [ -n "$SOCKET_PATH" ]; then
    XLIBS="$XLIBS -lsocket"
fi
if [ -n "$RESOLV_PATH" ]; then
    XLIBS="$XLIBS -lresolv"
fi

if [ -d /usr/kerberos/include ]; then
  XIPATHS="$XIPATHS -I/usr/kerberos/include"
fi

if [ '!' "X" = "X$1" ]; then
  PREFIX=`echo "$1"|sed 's/.*--prefix=//'`
  shift
fi

if [ "X" = "X$PREFIX" ]; then
    PREFIX="/usr/local"
fi
echo "Hydra will be installed into .../bin of: $PREFIX"
echo "  (change this by running ./configure --prefix=path)"
echo

echo "Writing Makefile.in ..."
echo "XDEFINES=$XDEFINES" >> Makefile.in
echo "XLIBS=$XLIBS" >> Makefile.in
echo "XLIBPATHS=$XLIBPATHS" >> Makefile.in
echo "XIPATHS=$XIPATHS" >> Makefile.in
echo "PREFIX=$PREFIX" >> Makefile.in
echo "STRIP=$STRIP" >> Makefile.in
echo >> Makefile.in

cat Makefile.unix > Makefile
cat Makefile.in >> Makefile
cat Makefile.am >> Makefile

echo
echo NOTES NOTES NOTES NOTES NOTES NOTES NOTES NOTES NOTES NOTES NOTES NOTES
echo =======================================================================
echo ARM/PalmPilot users: please run ./configure-arm or ./configure-palm respectivly
echo CYGWIN users: please edit Makefile.am and change
echo "  OPT=-O2 -I. -Wall"
echo to
echo "  OPT=-O2 -I. -Wall -DCYGWIN"
echo and then rerun ./configure
echo
echo "now type \"make\""
