#!/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/' pidfile='/var/run/bitlbee.pid' ipcsocket='/var/run/bitlbee' plugindir='$prefix/lib/bitlbee' pcdir='$prefix/lib/pkgconfig' includedir='$prefix/include/bitlbee' msn=1 jabber=1 oscar=1 yahoo=1 debug=0 strip=1 ipv6=1 ldap=auto 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 CC=$CC elif type gcc > /dev/null 2> /dev/null; then CC=gcc elif type cc > /dev/null 2> /dev/null; then CC=cc else echo 'Cannot find a C compiler, aborting.' exit 1; fi echo "CC=$CC" >> Makefile.settings; 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 else echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)' exit 1; fi 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; } detect_ldap() { TMPFILE=`mktemp` if $CC -o $TMPFILE -shared -lldap 2>/dev/null >/dev/null; then cat<>Makefile.settings EFLAGS+=-lldap CFLAGS+= EOF ldap=1 rm -f $TMPFILE ret=1 else ldap=0 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 [ "$ldap" = "auto" ]; then detect_ldap fi if [ "$ldap" = 0 ]; then echo "LDAP_OBJ=\# no ldap" >> 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 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 ) ;; Darwin ) ;; IRIX ) ;; SunOS ) echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings echo 'STRIP=\# skip strip' >> Makefile.settings ;; 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 if [ "$msn" = "1" ]; then echo ' Using SSL library: '$ssl; fi #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 if [ "$ldap" = "0" ]; then echo " LDAP storage backend disabled." else echo " LDAP storage backend enabled." fi