Index: configure
===================================================================
--- configure	(revision 66b9e86eafc3709c491f96c917069db8b6a0c895)
+++ configure	(revision 670204fe6b883397208758d1e8e0c3ada699379c)
@@ -28,12 +28,14 @@
 debug=0
 strip=1
-gcov=0
 ipv6=1
 
 events=glib
+ldap=0
 ssl=auto
 
 arch=`uname -s`
 cpu=`uname -m`
+
+GLIB_MIN_VERSION=2.4
 
 echo BitlBee configure
@@ -65,7 +67,8 @@
 --debug=0/1	Disable/enable debugging		$debug
 --strip=0/1	Disable/enable binary stripping		$strip
---gcov=0/1	Disable/enable test coverage reporting	$gcov
 
 --ipv6=0/1	IPv6 socket support			$ipv6
+
+--ldap=0/1/auto	LDAP support				$ldap
 
 --events=...	Event handler (glib, libevent)		$events
@@ -143,18 +146,20 @@
 fi
 
-echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings
+echo CFLAGS+=-I`pwd` -I`pwd`/lib -I`pwd`/protocols -I. >> Makefile.settings
 
 echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings
 
 if [ -n "$CC" ]; then
-	echo "CC=$CC" >> Makefile.settings;
+	CC=$CC
 elif type gcc > /dev/null 2> /dev/null; then
-	echo "CC=gcc" >> Makefile.settings;
+	CC=gcc
 elif type cc > /dev/null 2> /dev/null; then
-	echo "CC=cc" >> Makefile.settings;
+	CC=cc
 else
 	echo 'Cannot find a C compiler, aborting.'
 	exit 1;
 fi
+
+echo "CC=$CC" >> Makefile.settings;
 
 if [ -n "$LD" ]; then
@@ -172,11 +177,18 @@
 
 if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then
-	cat<<EOF>>Makefile.settings
+	if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then
+		cat<<EOF>>Makefile.settings
 EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`
 CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`
 EOF
-else
+	else
+		echo
+		echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.'
+		exit 1
+	fi
+else
+	echo
 	echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)'
-	exit 1;
+	exit 1
 fi
 
@@ -234,63 +246,103 @@
 }
 
-if [ "$msn" = 1 -o "$jabber" = 1 ]; then
-	if [ "$ssl" = "auto" ]; then
-		detect_gnutls
-		if [ "$ret" = "0" ]; then
-			detect_nss
-		fi;
-	elif [ "$ssl" = "gnutls" ]; then
-		detect_gnutls;
-	elif [ "$ssl" = "nss" ]; then
-		detect_nss;
-	elif [ "$ssl" = "openssl" ]; then
+detect_ldap()
+{
+	TMPFILE=`mktemp`
+	if $CC -o $TMPFILE -shared -lldap 2>/dev/null >/dev/null; then
+		cat<<EOF>>Makefile.settings
+EFLAGS+=-lldap
+CFLAGS+=
+EOF
+		ldap=1
+		rm -f $TMPFILE
+		ret=1
+	else
+		ldap=0
+		ret=0
+	fi
+}
+
+if [ "$ssl" = "auto" ]; then
+	detect_gnutls
+	if [ "$ret" = "0" ]; then
+		detect_nss
+	fi
+elif [ "$ssl" = "gnutls" ]; then
+	detect_gnutls
+elif [ "$ssl" = "nss" ]; then
+	detect_nss
+elif [ "$ssl" = "openssl" ]; then
+	echo
+	echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
+	echo 'install of OpenSSL (including devel/header files) before reporting'
+	echo 'compilation problems.'
+	echo
+	echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
+	echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
+	echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
+	echo 'part of the operating system, which makes it GPL-compatible.'
+	echo
+	echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
+	echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
+	echo
+	echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
+	echo 'probably illegal. If you want to create and distribute a binary BitlBee'
+	echo 'package, you really should use GnuTLS or NSS instead.'
+	echo
+	echo 'Also, the OpenSSL license requires us to say this:'
+	echo ' *    "This product includes software developed by the OpenSSL Project'
+	echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
+	
+	echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
+	
+	ret=1
+elif [ "$ssl" = "bogus" ]; then
+	echo
+	echo 'Using bogus SSL code. This means some features will not work properly.'
+	
+	## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
+	if [ "$msn" = "1" ]; then
 		echo
-		echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
-		echo 'install of OpenSSL (including devel/header files) before reporting'
-		echo 'compilation problems.'
-		echo
-		echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
-		echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
-		echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
-		echo 'part of the operating system, which makes it GPL-compatible.'
-		echo
-		echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
-		echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
-		echo
-		echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
-		echo 'probably illegal. If you want to create and distribute a binary BitlBee'
-		echo 'package, you really should use GnuTLS or NSS instead.'
-		echo
-		echo 'Also, the OpenSSL license requires us to say this:'
-		echo ' *    "This product includes software developed by the OpenSSL Project'
-		echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
-		
-		echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
-		
-		ret=1;
-	elif [ "$ssl" = "bogus" ]; then
-		echo
-		echo 'Using bogus SSL code. This will not make the MSN module work, but it will'
-		echo 'allow you to use the Jabber module - although without working SSL support.'
-		
-		ret=1;
-	else
-		echo
-		echo 'ERROR: Unknown SSL library specified.'
-		exit 1;
-	fi
-	
-	if [ "$ret" = "0" ]; then
-		echo
-		echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
-		echo '       This is necessary for MSN and full Jabber support. To continue,'
-		echo '       install a suitable SSL library or disable MSN support (--msn=0).'
-		echo '       If you want Jabber without SSL support you can try --ssl=bogus.'
-		
-		exit 1;
-	fi;
-	
-	echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
-fi
+		echo 'Real SSL support is necessary for MSN authentication, will build without'
+		echo 'MSN protocol support.'
+		msn=0
+	fi
+	
+	ret=1
+else
+	echo
+	echo 'ERROR: Unknown SSL library specified.'
+	exit 1
+fi
+
+if [ "$ret" = "0" ]; then
+	echo
+	echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
+	echo '       Please note that this script doesn'\''t have detection code for OpenSSL,'
+	echo '       so if you want to use that, you have to select it by hand. If you don'\''t'
+	echo '       need SSL support, you can select the "bogus" SSL library. (--ssl=bogus)'
+	
+	exit 1
+fi;
+
+echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
+
+STORAGES="text xml"
+
+if [ "$ldap" = "auto" ]; then
+	detect_ldap
+fi
+
+if [ "$ldap" = 0 ]; then
+	echo "#undef WITH_LDAP" >> config.h
+elif [ "$ldap" = 1 ]; then
+	echo "#define WITH_LDAP 1" >> config.h
+	STORAGES="$STORAGES ldap"
+fi
+
+for i in $STORAGES; do
+	STORAGE_OBJS="$STORAGE_OBJS storage_$i.o"
+done
+echo "STORAGE_OBJS="$STORAGE_OBJS >> Makefile.settings
 
 if [ "$strip" = 0 ]; then
@@ -306,6 +358,4 @@
 	elif type strip > /dev/null 2> /dev/null; then
 		echo "STRIP=strip" >> Makefile.settings;
-	elif /bin/test -x /usr/ccs/bin/strip; then
-		echo "STRIP=/usr/ccs/bin/strip" >> Makefile.settings;
 	else
 		echo
@@ -314,9 +364,4 @@
 		strip=0;
 	fi;
-fi
-
-if [ "$gcov" = "1" ]; then
-	echo "CFLAGS+=-ftest-coverage -fprofile-arcs" >> Makefile.settings
-	echo "EFLAGS+=-lgcov" >> Makefile.settings
 fi
 
@@ -391,5 +436,5 @@
 if [ "$protocols" = "PROTOCOLS = " ]; then
 	echo "WARNING: You haven't selected any communication protocol to compile!"
-	echo "         Bitlbee will run, but you will be unable to connect to IM servers!"
+	echo "         BitlBee will run, but you will be unable to connect to IM servers!"
 fi
 
@@ -426,27 +471,22 @@
 
 if [ "$debug" = "1" ]; then
-	echo '  Debugging enabled.';
-else
-	echo '  Debugging disabled.';
+	echo '  Debugging enabled.'
+else
+	echo '  Debugging disabled.'
 fi
 
 if [ "$strip" = "1" ]; then
-	echo '  Binary stripping enabled.';
-else
-	echo '  Binary stripping disabled.';
-fi
-
-echo '  Using event handler: '$events;
-echo '  Using SSL library: '$ssl;
-
-#if [ "$flood" = "0" ]; then
-#	echo '  Flood protection disabled.';
-#else
-#	echo '  Flood protection enabled.';
-#fi
+	echo '  Binary stripping enabled.'
+else
+	echo '  Binary stripping disabled.'
+fi
+
+echo '  Using event handler: '$events
+echo '  Using SSL library: '$ssl
+echo '  Building with these storage backends: '$STORAGES
 
 if [ -n "$protocols" ]; then
-	echo '  Building with these protocols:' $protocols;
-else
-	echo '  Building without IM-protocol support. We wish you a lot of fun...';
-fi
+	echo '  Building with these protocols:' $protocols
+else
+	echo '  Building without IM-protocol support. We wish you a lot of fun...'
+fi
