aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-06-28 11:59:33 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-06-28 11:59:33 +0200
commitb3c467bc312114eb7cdd45e6bc36a3d87bee6064 (patch)
treef6b81f7be2242dff1f59e711728d520d8c44a802
parent90bbb0efeae19bcc6a1096d8c89fbf3981c83503 (diff)
Cleaned up Makefiles + configure: Cleaning up bitlbee.pc, removed the second
piece of libevent probing code that mysteriously appeared (?), better handling of storage backends, an SSL module is now always included (so BitlBee can be compiled again when building without MSN- and Jabber-support (http_client also depends on SSL libs and can't be disabled)), oh, and fixed a compiler warning.
-rw-r--r--Makefile6
-rwxr-xr-xconfigure179
-rw-r--r--storage.c2
3 files changed, 80 insertions, 107 deletions
diff --git a/Makefile b/Makefile
index 36afa236..54e03401 100644
--- a/Makefile
+++ b/Makefile
@@ -9,12 +9,10 @@
-include Makefile.settings
# Program variables
-objects = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_text.o storage_xml.o unix.o user.o
+objects = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o $(STORAGE_OBJS) unix.o user.o
headers = account.h bitlbee.h commands.h conf.h config.h crypting.h help.h ini.h ipc.h irc.h log.h nick.h query.h set.h sock.h storage.h url.h user.h protocols/http_client.h protocols/md5.h protocols/nogaim.h protocols/proxy.h protocols/sha.h protocols/ssl_client.h
subdirs = protocols lib
-objects += $(LDAP_OBJ)
-
# Expansion of variables
subdirobjs = $(foreach dir,$(subdirs),$(dir)/$(dir).o)
CFLAGS += -Wall
@@ -43,7 +41,7 @@ clean: $(subdirs)
rm -f *.o $(OUTFILE) core utils/bitlbeed encode decode
distclean: clean $(subdirs)
- rm -f Makefile.settings config.h
+ rm -f Makefile.settings config.h bitlbee.pc
find . -name 'DEADJOE' -o -name '*.orig' -o -name '*.rej' -o -name '*~' -exec rm -f {} \;
check:
diff --git a/configure b/configure
index fc9caffe..7cc99b41 100755
--- a/configure
+++ b/configure
@@ -206,29 +206,6 @@ else
fi
echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
-if [ "$events" = "libevent" ]; then
- if ! [ -e "${libevent}include/event.h" ]; then
- echo
- echo 'Warning: Could not find event.h, you might have to install it and/or specify'
- echo 'its location using the --libevent= argument. (Example: If event.h is in'
- echo '/usr/local/include and binaries are in /usr/local/lib: --libevent=/usr/local)'
- fi
-
- echo '#define EVENTS_LIBEVENT' >> config.h
- cat <<EOF>>Makefile.settings
-EFLAGS+=-levent -L${libevent}lib
-CFLAGS+=-I${libevent}include
-EOF
-elif [ "$events" = "glib" ]; then
- ## We already use glib anyway, so this is all we need (and in fact not even this, but just to be sure...):
- echo '#define EVENTS_GLIB' >> config.h
-else
- echo
- echo 'ERROR: Unknown event handler specified.'
- exit 1
-fi
-echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
-
detect_gnutls()
{
if libgnutls-config --version > /dev/null 2> /dev/null; then
@@ -276,78 +253,89 @@ EOF
fi
}
-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
- 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;
+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/)"'
- if [ "$ret" = "0" ]; then
+ echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
+
+ ret=1
+elif [ "$ssl" = "bogus" ]; then
+ echo
+ echo 'Using bogus SSL code. This means some features have to be disabled.'
+
+ ## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
+ if [ "$msn" = "1" ]; 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 'Real SSL support is necessary for MSN authentication, will build without'
+ echo 'MSN protocol support.'
+ msn=0
+ fi
- echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
+ 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 "LDAP_OBJ=" >> Makefile.settings
echo "#undef WITH_LDAP" >> config.h
elif [ "$ldap" = 1 ]; then
echo "#define WITH_LDAP 1" >> config.h
- echo "LDAP_OBJ=storage_ldap.o" >> Makefile.settings
+ 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
echo "STRIP=\# skip strip" >> Makefile.settings;
else
@@ -360,8 +348,6 @@ else
echo "STRIP=$STRIP" >> Makefile.settings;
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
echo 'No strip utility found, cannot remove unnecessary parts from executable.'
@@ -440,7 +426,7 @@ fi
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
echo "PROTOCOLS = $protocols" >> Makefile.settings
@@ -475,34 +461,23 @@ echo
echo 'Configuration done:'
if [ "$debug" = "1" ]; then
- echo ' Debugging enabled.';
+ echo ' Debugging enabled.'
else
- echo ' Debugging disabled.';
+ echo ' Debugging disabled.'
fi
if [ "$strip" = "1" ]; then
- echo ' Binary stripping enabled.';
+ echo ' Binary stripping enabled.'
else
- echo ' Binary stripping disabled.';
+ 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 ' 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
-
-if [ "$ldap" = "0" ]; then
- echo " LDAP storage backend disabled."
+ echo ' Building with these protocols:' $protocols
else
- echo " LDAP storage backend enabled."
+ echo ' Building without IM-protocol support. We wish you a lot of fun...'
fi
diff --git a/storage.c b/storage.c
index b8e07278..807d5bb4 100644
--- a/storage.c
+++ b/storage.c
@@ -42,7 +42,7 @@ void register_storage_backend(storage_t *backend)
static storage_t *storage_init_single(const char *name)
{
GList *gl;
- storage_t *st;
+ storage_t *st = NULL;
for (gl = storage_backends; gl; gl = gl->next) {
st = gl->data;