#!/bin/sh ############################## ## Configurer for BitlBee ## ## ## ## Copyright 2004 Lintux ## ## Copyright 2002 Lucumo ## ############################## prefix='/usr/local/' bindir='$prefix/sbin/' etcdir='$prefix/etc/bitlbee/' mandir='$prefix/share/man/' datadir='$prefix/share/bitlbee/' config='/var/lib/bitlbee/' plugindir='$prefix/lib/bitlbee/' includedir='$prefix/include/bitlbee/' libevent='/usr/' pidfile='/var/run/bitlbee.pid' ipcsocket='/var/run/bitlbee' pcdir='$prefix/lib/pkgconfig' msn=1 jabber=1 oscar=1 yahoo=1 debug=0 strip=1 ipv6=1 events=glib ssl=auto arch=`uname -s` cpu=`uname -m` echo BitlBee configure while [ -n "$1" ]; do e="`expr "X$1" : 'X--\(.*=.*\)'`" if [ -z "$e" ]; then cat<Makefile.settings ## BitlBee settings, generated by configure PREFIX=$prefix BINDIR=$bindir ETCDIR=$etcdir MANDIR=$mandir DATADIR=$datadir PLUGINDIR=$plugindir CONFIG=$config IPCSOCKET=$ipcsocket INCLUDEDIR=$includedir PCDIR=$pcdir ARCH=$arch CPU=$cpu OUTFILE=bitlbee DESTDIR= LFLAGS= EFLAGS= EOF cat<config.h /* BitlBee settings, generated by configure Do *NOT* use any of these defines in your code without thinking twice, most of them can/will be overridden at run-time */ #define CONFIG "$config" #define ETCDIR "$etcdir" #define VARDIR "$datadir" #define PLUGINDIR "$plugindir" #define PIDFILE "$pidfile" #define IPCSOCKET "$ipcsocket" #define ARCH "$arch" #define CPU "$cpu" EOF if [ "$ipv6" = "1" ]; then echo '#define IPV6' >> config.h fi if [ "$debug" = "1" ]; then echo 'CFLAGS=-g' >> Makefile.settings echo 'DEBUG=1' >> Makefile.settings echo '#define DEBUG' >> config.h else echo 'CFLAGS=-O3' >> Makefile.settings fi echo CFLAGS+=-I`pwd` -I`pwd`/protocols -I. >> Makefile.settings echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings if [ -n "$CC" ]; then echo "CC=$CC" >> Makefile.settings; elif type gcc > /dev/null 2> /dev/null; then echo "CC=gcc" >> Makefile.settings; elif type cc > /dev/null 2> /dev/null; then echo "CC=cc" >> Makefile.settings; else echo 'Cannot find a C compiler, aborting.' exit 1; fi if [ -n "$LD" ]; then echo "LD=$LD" >> Makefile.settings; elif type ld > /dev/null 2> /dev/null; then echo "LD=ld" >> Makefile.settings; else echo 'Cannot find ld, aborting.' exit 1; fi if [ -z "$PKG_CONFIG" ]; then PKG_CONFIG=pkg-config fi if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then cat<>Makefile.settings EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0` CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0` EOF echo '#define GLIB2' >> config.h elif type glib-config > /dev/null 2> /dev/null; then cat<>Makefile.settings EFLAGS+=`glib-config --libs` CFLAGS+=`glib-config --cflags` EOF echo '#define GLIB1' >> config.h else echo 'Cannot find glib development libraries, aborting. (Install libglib-dev?)' exit 1; fi if [ -r /usr/include/iconv.h ]; then :; elif [ -r /usr/local/include/iconv.h ]; then echo CFLAGS+=-I/usr/local/include >> Makefile.settings else echo echo 'Warning: Could not find iconv.h, you might have to install it and/or modify' echo 'Makefile.settings to tell where this file is.' fi 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 <>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 cat <>Makefile.settings EFLAGS+=`libgnutls-config --libs` CFLAGS+=`libgnutls-config --cflags` EOF ssl=gnutls ret=1; else ret=0; fi; } detect_nss() { if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG mozilla-nss; then cat<>Makefile.settings EFLAGS+=`$PKG_CONFIG --libs mozilla-nss` CFLAGS+=`$PKG_CONFIG --cflags mozilla-nss` EOF ssl=nss ret=1; else ret=0; 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; 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 if [ "$strip" = 0 ]; then echo "STRIP=\# skip strip" >> Makefile.settings; else if [ "$debug" = 1 ]; then echo echo 'Stripping binaries does not make sense when debugging. Stripping disabled.' echo 'STRIP=\# skip strip' >> Makefile.settings strip=0; elif [ -n "$STRIP" ]; then 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.' echo 'STRIP=\# skip strip' >> Makefile.settings strip=0; fi; fi echo if [ -z "$BITLBEE_VERSION" -a -d .bzr ] && type bzr > /dev/null 2> /dev/null; then nick=`bzr nick` if [ -n "$nick" -a "$nick" != "bitlbee" ]; then nick="-$nick" else nick="" fi rev=`bzr revno` echo 'Using bzr revision #'$rev' as version number' BITLBEE_VERSION=\"bzr$nick-$rev\" fi if [ -n "$BITLBEE_VERSION" ]; then echo 'Spoofing version number: '$BITLBEE_VERSION echo '#undef BITLBEE_VERSION' >> config.h echo '#define BITLBEE_VERSION '$BITLBEE_VERSION >> config.h echo fi cat <bitlbee.pc prefix=$prefix includedir=$includedir Name: bitlbee Description: IRC to IM gateway Requires: glib-2.0 Version: $BITLBEE_VERSION Libs: Cflags: -I\${includedir} EOF protocols='' protoobjs='' if [ "$msn" = 0 ]; then echo '#undef WITH_MSN' >> config.h else echo '#define WITH_MSN' >> config.h protocols=$protocols'msn ' protoobjs=$protoobjs'msn_mod.o ' fi if [ "$jabber" = 0 ]; then echo '#undef WITH_JABBER' >> config.h else echo '#define WITH_JABBER' >> config.h protocols=$protocols'jabber ' protoobjs=$protoobjs'jabber_mod.o ' fi if [ "$oscar" = 0 ]; then echo '#undef WITH_OSCAR' >> config.h else echo '#define WITH_OSCAR' >> config.h protocols=$protocols'oscar ' protoobjs=$protoobjs'oscar_mod.o ' fi if [ "$yahoo" = 0 ]; then echo '#undef WITH_YAHOO' >> config.h else echo '#define WITH_YAHOO' >> config.h protocols=$protocols'yahoo ' protoobjs=$protoobjs'yahoo_mod.o ' 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!" fi echo "PROTOCOLS = $protocols" >> Makefile.settings echo "PROTOOBJS = $protoobjs" >> Makefile.settings echo Architecture: $arch case "$arch" in Linux ) ;; GNU/* ) ;; *BSD ) echo 'EFLAGS+=-liconv' >> Makefile.settings; ;; SunOS ) echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings echo 'STRIP=\# skip strip' >> Makefile.settings echo 'EFLAGS+=-liconv' >> Makefile.settings; ;; Darwin ) echo 'EFLAGS+=-liconv' >> Makefile.settings; ;; IRIX ) ;; CYGWIN* ) echo 'Cygwin is not officially supported.' ;; * ) echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.' echo 'Please report any problems at http://bugs.bitlbee.org/.' ;; esac echo echo 'Configuration done:' if [ "$debug" = "1" ]; then 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 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