# configure
# Copyright (C) 2007, 2008 Gustav Behm <gbehm (at) kth.se>
#
# This file is part of Netzack.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

#!/bin/sh


TR=tr


VARIABLES="VERSION PRODUCT PREFIX PREFIX_LIB PREFIX_BIN EXEC_NAME JARFILE TARBALL PORT GROUP"

check_prog() {
    PROGRAMS="${PROGRAMS} $1"
    for prog in $2; do
	prog=`which $prog`
	if [ $?  -eq 0 ]
	then
	    export $1=$prog;
	    return 0
	fi
    done

    return 1
}


help() {
    echo <<EOF
Usage: $0 [OPTIONS]
EOF

    exit 1
}


check_arg() {
    for var in $VARIABLES;
    do
	set=`echo $1 | sed -e 's/^[-]*\([^=]*\)=\(.*\)/\1/' | ${TR} [:lower:] [:upper:]`
	if [ $var = $set ]
	then
	    value=`echo $1 | sed -e 's/^[-]*\([^=]*\)=\(.*\)/\2/'`
	    eval "$var=$value"
	    return 0
	fi
    done

    help
}


for arg in $@;
do
    check_arg $arg
done

if [ -z $VERSION ]
then
    VERSION="0.1b"
fi

if [ -z $PRODUCT ]
then
    PRODUCT="Netzack"
fi

if [ -z $PREFIX ]
then
    PREFIX="/usr"
fi

if [ -z $PREFIX_LIB ]
then
    PREFIX_LIB=`echo share/${PRODUCT}/ | ${TR} [:upper:] [:lower:]`
fi


if [ -z $PREFIX_BIN ]
then
    PREFIX_BIN="bin/"
fi

if [ -z $EXEC_NAME ]
then
    EXEC_NAME=`echo ${PRODUCT} | ${TR} [:upper:] [:lower:]`
fi


if [ -z $JARFILE ]
then
    JARFILE="${PRODUCT}-${VERSION}.jar"
fi

if [ -z $JARFILE ]
then
    JARFILE="${PRODUCT}-${VERSION}.jar"
fi

if [ -z $TARBALL ]
then
    TARBALL=`echo "${PRODUCT}-${VERSION}.tar.gz" | ${TR} [:upper:] [:lower:]`
fi





echo -n "Checking for install... "
check_prog INSTALL "install"
if [ $? -eq 0 ]
then
    echo $INSTALL
else
    echo "No install found."
    return 1
fi


echo -n "Checking for Java... "
check_prog JAVA "gij java"
if [ $? -eq 0 ]
then
    echo $JAVA
else
    echo "No java found."
    return 1
fi


echo -n "Checking for Java compiler... "
check_prog JAVAC "gcj jikes javac"
if [ $? -eq 0 ]
then
    echo $JAVAC
else
    echo "No java compiler found."
    return 1
fi



echo -n "Checking for jar... "
check_prog JAR "fastjar jar"
if [ $? -eq 0 ]
then
    echo $JAR
else
    echo "No jar found."
    return 1
fi


echo -n "Checking for tar... "
check_prog TAR "tar"
if [ $? -eq 0 ]
then
    echo $TAR
else
    echo "No tar found."
    return 1
fi


echo -n "Checking for sed... "
check_prog SED "sed"
if [ $? -eq 0 ]
then
    echo $SED
else
    echo "No SED found."
    return 1
fi





echo -n "Checking for basename... "
check_prog BASENAME "basename"
if [ $? -eq 0 ]
then
    echo $BASENAME
else
    echo "No basename found."
    return 1
fi












if [ -e src/config.xml ]
then
    rm src/config.xml
fi



if [ -e Makefile.config ]
then
    rm Makefile.config
fi


echo "VARIABLES = ${VARIABLES} ${PROGRAMS}" > Makefile.config

echo -n "" > config.sed

echo "<?xml version=\"1.0\"?>
<!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\">
<properties>" > src/config.xml

for var in $VARIABLES ${PROGRAMS};
do
    echo -n "$var = " >> Makefile.config
    eval "sh -c \"echo \$$var\"" >> Makefile.config

    echo -n "s/%%$var%%/" >> config.sed
    eval "sh -c \"echo -n \$$var\"" | sed -e 's/\//\\\//g' >> config.sed
    echo "/g" >> config.sed

    echo -n "  <entry key=\"$var\">" | $TR [:upper:] [:lower:] >> src/config.xml
    eval "sh -c \"echo -n \$$var\"" >> src/config.xml
    echo "</entry>" >> src/config.xml

done

echo "</properties>" >> src/config.xml



