#!/bin/sh
URL="https://www.unrealircd.org/files/curl-latest.tar.gz"
OUTF="curl-latest.tar.gz"
OUTD="curl-latest"
ARESPATH="`pwd`/extras/c-ares"
UNREALDIR="`pwd`"
CARESVERSION="1.17.1"
LIBDIR="$1"

if [ "x$1" = "x" ]; then
	echo "You should (no longer) run this program directly."
	echo "It will be invoked by ./Config"
	exit 1
fi

if [ ! -f src/parse.c ]; then
	if [ -f ../src/parse.c ]; then
		cd ..
	else
		echo "Please run this program from your UnrealIRCd directory"
		echo "(usually $HOME/unrealircd-5.0.X or something like that)"
		exit 1
	fi
fi

wget --version 1>/dev/null 2>&1
if [ "$?" = 0 ]; then
	FETCHER="wget"
else
	fetch --version 1>/dev/null 2>&1
	if [ "$?" = 0 ]; then
		FETCHER="fetch"
	else
		lynx --version 1>/dev/null 2>&1
		if [ "$?" = 0 ]; then
			FETCHER="lynx"
		else
			echo "ERROR: unable to find wget/fetch/lynx, please install at least one of these programs"
			exit 1
		fi
	fi
fi

if [ ! -d tmp ]; then
	mkdir tmp || exit 1
fi

cd tmp || exit 1

rm -f "$OUTF"

if [ "$FETCHER" = "wget" ]; then
	wget -O "$OUTF" "$URL"
elif [ "$FETCHER" = "lynx" ]; then
	lynx -dump "$URL" >"$OUTF"
elif [ "$FETCHER" = "fetch" ]; then
	cd tmp #todo: find out the cmd line parameter ;)
	fetch "$URL"
fi

if [ "$?" != 0 ]; then
	echo "ERROR: Something went wrong while trying to download $URL"
	exit 1
fi

rm -rf "$OUTD" # remove old directory prior to extracting
tar xzf "$OUTF" || exit 1


if [ "`eval echo -n 'a'`" = "-n a" ] ; then
        c="\c"
else
        n="-n"
fi

if [ ! -d "$ARESPATH/lib" ]; then
	echo "c-ares has not been build yet, let's do that now..."
	cd ../extras/
	tar xzf c-ares.tar.gz || exit 1
	cd c-ares-$CARESVERSION || exit 1
	./configure --prefix=$ARESPATH || exit 1
	(make && make install) || exit 1
	cd ../../tmp/
	echo "c-ares built."
	echo ""
fi

# We assume curl has been packaged in a way it will extract to "$OUTD"/
cd "$OUTD" || exit 1

echo "Building and installing libcurl"
CPPFLAGS="-I$ARESPATH/include" ./configure --prefix=$UNREALDIR/extras/curl --libdir=$LIBDIR --enable-shared \
 --enable-ares=$ARESPATH --with-openssl
cp -R $ARESPATH/lib ares
make && make install

#cp $ARESPATH/lib/libcares.a $HOME/curl/lib
# that isn't needed anymore as the lib is already in unreal...
