source: configure @ c775a58

Last change on this file since c775a58 was c775a58, checked in by Wilmer van der Gaast <wilmer@…>, at 2010-12-07T23:41:49Z

At least don't disable Twitter anymore for libpurple builds. libpurple
doesn't have Twitter support by default and it's unlikely that someone will
prefer libpurple-twitter over BitlBee's Twitter code anyway.

Also automatically disable libpurple protocol modules if a native variant is
already set up. The linking conflict works the other way around (libpurple
modules may break if native modules for the same protocol are compiled in)
so this should mostly resolve the linking conflict problem.

  • Property mode set to 100755
File size: 17.8 KB
RevLine 
[b7d3cc34]1#!/bin/sh
2
3##############################
4##  Configurer for BitlBee  ##
5##                          ##
6##  Copyright 2004 Lintux   ##
7##  Copyright 2002 Lucumo   ##
8##############################
9
10prefix='/usr/local/'
11bindir='$prefix/sbin/'
12etcdir='$prefix/etc/bitlbee/'
13mandir='$prefix/share/man/'
14datadir='$prefix/share/bitlbee/'
15config='/var/lib/bitlbee/'
[85cf37f]16plugindir='$prefix/lib/bitlbee/'
17includedir='$prefix/include/bitlbee/'
18libevent='/usr/'
[34b17d9]19pidfile='/var/run/bitlbee.pid'
[5c5a586]20ipcsocket='/var/run/bitlbee.sock'
[e506d6c]21pcdir='$prefix/lib/pkgconfig'
[8462239]22systemlibdirs="/lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64"
[b7d3cc34]23
24msn=1
25jabber=1
26oscar=1
27yahoo=1
[1b221e0]28twitter=1
[4aa0f6b]29twitter=1
[04dc563]30purple=0
[b7d3cc34]31
32debug=0
33strip=1
[66b9e86e]34gcov=0
[2abfbc5]35plugins=1
[04f0c10]36otr=0
[85cf37f]37
38events=glib
[670204f]39ldap=0
[b7d3cc34]40ssl=auto
41
42arch=`uname -s`
43cpu=`uname -m`
44
[670204f]45GLIB_MIN_VERSION=2.4
46
[b7d3cc34]47echo BitlBee configure
48
49while [ -n "$1" ]; do
50        e="`expr "X$1" : 'X--\(.*=.*\)'`"
51        if [ -z "$e" ]; then
52                cat<<EOF
53
54Usage: $0 [OPTIONS]
55
56Option          Description                             Default
57
58--prefix=...    Directories to put files in             $prefix
59--bindir=...                                            $bindir
60--etcdir=...                                            $etcdir
61--mandir=...                                            $mandir
62--datadir=...                                           $datadir
[7b23afd]63--plugindir=...                                         $plugindir
[34b17d9]64--pidfile=...                                           $pidfile
[b7d3cc34]65--config=...                                            $config
[6dff9d4]66--ipcsocket=...                                         $ipcsocket
[b7d3cc34]67
68--msn=0/1       Disable/enable MSN part                 $msn
69--jabber=0/1    Disable/enable Jabber part              $jabber
70--oscar=0/1     Disable/enable Oscar part (ICQ, AIM)    $oscar
71--yahoo=0/1     Disable/enable Yahoo part               $yahoo
[4aa0f6b]72--twitter=0/1   Disable/enable Twitter part             $twitter
[b7d3cc34]73
[796da03]74--purple=0/1    Disable/enable libpurple support        $purple
[04f0c10]75                (automatically disables other protocol modules)
[b7d3cc34]76
77--debug=0/1     Disable/enable debugging                $debug
78--strip=0/1     Disable/enable binary stripping         $strip
[66b9e86e]79--gcov=0/1      Disable/enable test coverage reporting  $gcov
[2abfbc5]80--plugins=0/1   Disable/enable plugins support          $plugins
[04f0c10]81--otr=0/1/auto/plugin
82                Disable/enable OTR encryption support   $otr
[b7d3cc34]83
[85cf37f]84--events=...    Event handler (glib, libevent)          $events
[b7d3cc34]85--ssl=...       SSL library to use (gnutls, nss, openssl, bogus, auto)
86                                                        $ssl
[aec56b0]87
[f1e7407]88--target=...    Cross compilation target                same as host
[b7d3cc34]89EOF
90                exit;
91        fi
92        eval "$e"
93        shift;
94done
95
96# Expand $prefix and get rid of double slashes
97bindir=`eval echo "$bindir/" | sed 's/\/\{1,\}/\//g'`
98etcdir=`eval echo "$etcdir/" | sed 's/\/\{1,\}/\//g'`
99mandir=`eval echo "$mandir/" | sed 's/\/\{1,\}/\//g'`
100datadir=`eval echo "$datadir/" | sed 's/\/\{1,\}/\//g'`
101config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
[7b23afd]102plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'`
[85cf37f]103includedir=`eval echo "$includedir"/ | sed 's/\/\{1,\}/\//g'`
104libevent=`eval echo "$libevent"/ | sed 's/\/\{1,\}/\//g'`
105
[6dff9d4]106pidfile=`eval echo "$pidfile" | sed 's/\/\{1,\}/\//g'`
107ipcsocket=`eval echo "$ipcsocket" | sed 's/\/\{1,\}/\//g'`
[e506d6c]108pcdir=`eval echo "$pcdir" | sed 's/\/\{1,\}/\//g'`
[b7d3cc34]109
110cat<<EOF>Makefile.settings
111## BitlBee settings, generated by configure
112PREFIX=$prefix
113BINDIR=$bindir
114ETCDIR=$etcdir
115MANDIR=$mandir
116DATADIR=$datadir
[7b23afd]117PLUGINDIR=$plugindir
[b7d3cc34]118CONFIG=$config
[e506d6c]119INCLUDEDIR=$includedir
120PCDIR=$pcdir
[b7d3cc34]121
[1bf9492]122TARGET=$target
[b7d3cc34]123ARCH=$arch
124CPU=$cpu
125
126DESTDIR=
127LFLAGS=
128EFLAGS=
129EOF
130
[1074806]131srcdir=$(cd $(dirname $0);pwd)
132currdir=$(pwd)
133if [ "$srcdir" != "$currdir" ]; then 
[f60079b]134        echo
135        echo "configure script run from a different directory. Will create some symlinks..."
136        if [ ! -e Makefile -o -L Makefile ]; then
[04dc563]137                COPYDIRS="doc lib protocols tests utils"
138                mkdir -p $(cd "$srcdir"; find $COPYDIRS -type d)
[f60079b]139                find . -name Makefile -type l -print0 | xargs -0 rm 2> /dev/null
140                dst="$PWD"
141                cd "$srcdir"
[04dc563]142                for i in $(find . -name Makefile -type f); do
[f60079b]143                        ln -s "$PWD${i#.}" "$dst/$i";
144                done
145                cd "$dst"
146                rm -rf .bzr
147        fi
148       
149        echo "SRCDIR=$srcdir/" >> Makefile.settings
150        CFLAGS="$CFLAGS -I${dst}"
151else
152        srcdir=$PWD
153fi
154
[b7d3cc34]155cat<<EOF>config.h
156/* BitlBee settings, generated by configure
157   
158   Do *NOT* use any of these defines in your code without thinking twice, most
159   of them can/will be overridden at run-time */
160
161#define CONFIG "$config"
162#define ETCDIR "$etcdir"
163#define VARDIR "$datadir"
[7b23afd]164#define PLUGINDIR "$plugindir"
[34b17d9]165#define PIDFILE "$pidfile"
[6dff9d4]166#define IPCSOCKET "$ipcsocket"
[b7d3cc34]167#define ARCH "$arch"
168#define CPU "$cpu"
169EOF
170
[1bf9492]171
172
[f1e7407]173if [ -n "$target" ]; then
[1bf9492]174        PKG_CONFIG_LIBDIR=/usr/$target/lib/pkgconfig
175        export PKG_CONFIG_LIBDIR
[f1e7407]176        PATH=/usr/$target/bin:$PATH
177        CC=$target-cc
178        LD=$target-ld
[1bf9492]179        systemlibdirs="/usr/$target/lib"
[f1e7407]180fi
181
[1bf9492]182
[b7d3cc34]183if [ "$debug" = "1" ]; then
[285b55d]184        [ -z "$CFLAGS" ] && CFLAGS=-g
[b7d3cc34]185        echo 'DEBUG=1' >> Makefile.settings
[911cc4f]186        CFLAGS="$CFLAGS -DDEBUG"
[b7d3cc34]187else
[56f260a]188        [ -z "$CFLAGS" ] && CFLAGS="-O2 -fno-strict-aliasing"
[b7d3cc34]189fi
190
[daae10f]191echo CFLAGS=$CFLAGS $CPPFLAGS >> Makefile.settings
[f60079b]192echo CFLAGS+=-I${srcdir} -I${srcdir}/lib -I${srcdir}/protocols -I. >> Makefile.settings
[b7d3cc34]193
[f712188]194echo CFLAGS+=-DHAVE_CONFIG_H >> Makefile.settings
195
[b7d3cc34]196if [ -n "$CC" ]; then
[5973412]197        CC=$CC
[b7d3cc34]198elif type gcc > /dev/null 2> /dev/null; then
[5973412]199        CC=gcc
[b7d3cc34]200elif type cc > /dev/null 2> /dev/null; then
[5973412]201        CC=cc
[b7d3cc34]202else
203        echo 'Cannot find a C compiler, aborting.'
204        exit 1;
205fi
206
[5973412]207echo "CC=$CC" >> Makefile.settings;
[daae10f]208if echo $CC | grep -qw gcc; then
209        # Apparently -Wall is gcc-specific?
210        echo CFLAGS+=-Wall >> Makefile.settings
211fi
[5973412]212
[f1e7407]213if [ -z "$LD" ]; then
214        if type ld > /dev/null 2> /dev/null; then
215                LD=ld
216        else
217                echo 'Cannot find ld, aborting.'
218                exit 1;
219        fi
[b7d3cc34]220fi
221
[f1e7407]222echo "LD=$LD" >> Makefile.settings
223
[32c632f]224if [ -z "$PKG_CONFIG" ]; then
225        PKG_CONFIG=pkg-config
226fi
227
228if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then
[670204f]229        if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then
230                cat<<EOF>>Makefile.settings
[32c632f]231EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`
232CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`
[b7d3cc34]233EOF
[670204f]234        else
235                echo
236                echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.'
237                exit 1
238        fi
[b7d3cc34]239else
[670204f]240        echo
[574af7e]241        echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)'
[670204f]242        exit 1
[b7d3cc34]243fi
244
[85cf37f]245if [ "$events" = "libevent" ]; then
[003553b]246        if ! [ -f "${libevent}include/event.h" ]; then
[85cf37f]247                echo
248                echo 'Warning: Could not find event.h, you might have to install it and/or specify'
249                echo 'its location using the --libevent= argument. (Example: If event.h is in'
250                echo '/usr/local/include and binaries are in /usr/local/lib: --libevent=/usr/local)'
251        fi
252       
253        echo '#define EVENTS_LIBEVENT' >> config.h
254        cat <<EOF>>Makefile.settings
255EFLAGS+=-levent -L${libevent}lib
256CFLAGS+=-I${libevent}include
257EOF
258elif [ "$events" = "glib" ]; then
259        ## We already use glib anyway, so this is all we need (and in fact not even this, but just to be sure...):
260        echo '#define EVENTS_GLIB' >> config.h
[b7d3cc34]261else
262        echo
[85cf37f]263        echo 'ERROR: Unknown event handler specified.'
264        exit 1
[b7d3cc34]265fi
[85cf37f]266echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
[b7d3cc34]267
268detect_gnutls()
269{
[4af7b4f]270        if $PKG_CONFIG --exists gnutls; then
271                cat <<EOF>>Makefile.settings
[83e47ec]272EFLAGS+=`$PKG_CONFIG --libs gnutls` `libgcrypt-config --libs`
273CFLAGS+=`$PKG_CONFIG --cflags gnutls` `libgcrypt-config --cflags`
[4af7b4f]274EOF
275                ssl=gnutls
276                ret=1
277        elif libgnutls-config --version > /dev/null 2> /dev/null; then
[b7d3cc34]278                cat <<EOF>>Makefile.settings
[83e47ec]279EFLAGS+=`libgnutls-config --libs` `libgcrypt-config --libs`
280CFLAGS+=`libgnutls-config --cflags` `libgcrypt-config --cflags`
[b7d3cc34]281EOF
282               
283                ssl=gnutls
284                ret=1;
285        else
286                ret=0;
287        fi;
288}
289
290detect_nss()
291{
[ef043d3]292        if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG nss; then
[b7d3cc34]293                cat<<EOF>>Makefile.settings
[ef043d3]294EFLAGS+=`$PKG_CONFIG --libs nss`
295CFLAGS+=`$PKG_CONFIG --cflags nss`
[b7d3cc34]296EOF
297               
298                ssl=nss
299                ret=1;
300        else
301                ret=0;
302        fi;
303}
304
[f32d557]305detect_ldap()
[f665dab]306{
[4fca1db]307        TMPFILE=$(mktemp /tmp/bitlbee-configure.XXXXXX)
[5973412]308        if $CC -o $TMPFILE -shared -lldap 2>/dev/null >/dev/null; then
[f665dab]309                cat<<EOF>>Makefile.settings
[5973412]310EFLAGS+=-lldap
311CFLAGS+=
[f665dab]312EOF
[f32d557]313                ldap=1
[5973412]314                rm -f $TMPFILE
[f665dab]315                ret=1
[b7d3cc34]316        else
[5973412]317                ldap=0
[f665dab]318                ret=0
[b7d3cc34]319        fi
[f665dab]320}
321
[36cf9fd]322RESOLV_TESTCODE='
323#include <arpa/nameser.h>
324#include <resolv.h>
325
326int main()
327{
328        ns_initparse( NULL, 0, NULL );
329        ns_parserr( NULL, ns_s_an, 0, NULL );
330}
331'
332
333detect_resolv_dynamic()
334{
[4fca1db]335        TMPFILE=$(mktemp /tmp/bitlbee-configure.XXXXXX)
[8462239]336        ret=1
337        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - -lresolv >/dev/null 2>/dev/null
[36cf9fd]338        if [ "$?" = "0" ]; then
339                echo 'EFLAGS+=-lresolv' >> Makefile.settings
[8462239]340                ret=0
[36cf9fd]341        fi
342
[8462239]343        rm -f $TMPFILE
344        return $ret
[36cf9fd]345}
346
347detect_resolv_static()
348{
[4fca1db]349        TMPFILE=$(mktemp /tmp/bitlbee-configure.XXXXXX)
[8462239]350        ret=1
[36cf9fd]351        for i in $systemlibdirs; do
352                if [ -f $i/libresolv.a ]; then
[8462239]353                        echo "$RESOLV_TESTCODE" | $CC -o $TMPFILE -x c - -Wl,$i/libresolv.a >/dev/null 2>/dev/null
[36cf9fd]354                        if [ "$?" = "0" ]; then
355                                echo 'EFLAGS+='$i'/libresolv.a' >> Makefile.settings
[8462239]356                                ret=0
[36cf9fd]357                        fi
358                fi
359        done
360
[8462239]361        rm -f $TMPFILE
362        return $ret
[36cf9fd]363}
364
[b3c467b]365if [ "$ssl" = "auto" ]; then
366        detect_gnutls
[b7d3cc34]367        if [ "$ret" = "0" ]; then
[b3c467b]368                detect_nss
[b7d3cc34]369        fi
[b3c467b]370elif [ "$ssl" = "gnutls" ]; then
371        detect_gnutls
372elif [ "$ssl" = "nss" ]; then
373        detect_nss
[85d7b85]374elif [ "$ssl" = "sspi" ]; then
375        echo
[b3c467b]376elif [ "$ssl" = "openssl" ]; then
377        echo
378        echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
379        echo 'install of OpenSSL (including devel/header files) before reporting'
380        echo 'compilation problems.'
381        echo
382        echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
383        echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
384        echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
385        echo 'part of the operating system, which makes it GPL-compatible.'
386        echo
387        echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
388        echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
389        echo
390        echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
391        echo 'probably illegal. If you want to create and distribute a binary BitlBee'
392        echo 'package, you really should use GnuTLS or NSS instead.'
393        echo
394        echo 'Also, the OpenSSL license requires us to say this:'
395        echo ' *    "This product includes software developed by the OpenSSL Project'
396        echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
[b7d3cc34]397       
[b3c467b]398        echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
399       
400        ret=1
401elif [ "$ssl" = "bogus" ]; then
402        echo
[670204f]403        echo 'Using bogus SSL code. This means some features will not work properly.'
[b3c467b]404       
405        ## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
[1c2eaa3]406        if [ "$msn" = "1" -o "$yahoo" = "1" ]; then
[b7d3cc34]407                echo
[1c2eaa3]408                echo 'WARNING: The MSN and Yahoo! modules will not work without SSL. Disabling.'
[b3c467b]409                msn=0
[1c2eaa3]410                yahoo=0
[b3c467b]411        fi
[b7d3cc34]412       
[b3c467b]413        ret=1
414else
415        echo
416        echo 'ERROR: Unknown SSL library specified.'
417        exit 1
[b7d3cc34]418fi
419
[b3c467b]420if [ "$ret" = "0" ]; then
421        echo
422        echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
423        echo '       Please note that this script doesn'\''t have detection code for OpenSSL,'
424        echo '       so if you want to use that, you have to select it by hand. If you don'\''t'
425        echo '       need SSL support, you can select the "bogus" SSL library. (--ssl=bogus)'
[b7d3cc34]426       
[b3c467b]427        exit 1
428fi;
429
[83e47ec]430if [ "$msn" = "1" -a "$ssl" != "openssl" -a "$ssl" != "gnutls" ]; then
[a366cca]431        # Needed for MSN only. OpenSSL exports nice cipher functions already,
[83e47ec]432        # in case of GnuTLS we should be able to use gcrypt. Otherwise, use
433        # built-in stuff. (Since right now those are the only two supported
434        # SSL modules anyway, this is mostly unnecessary.)
[a366cca]435        echo 'DES=des.o' >> Makefile.settings
436fi
437
[b3c467b]438echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
439
[36cf9fd]440if detect_resolv_dynamic || detect_resolv_static; then
441        echo '#define HAVE_RESOLV_A' >> config.h
442fi
[36e9f62]443
[ba7d16f]444STORAGES="xml"
[b3c467b]445
[f32d557]446if [ "$ldap" = "auto" ]; then
447        detect_ldap
[b7d3cc34]448fi
449
[f32d557]450if [ "$ldap" = 0 ]; then
[5973412]451        echo "#undef WITH_LDAP" >> config.h
[f32d557]452elif [ "$ldap" = 1 ]; then
[5c5a586]453        echo
454        echo 'LDAP support is a work in progress and does NOT work AT ALL right now.'
455        echo
456        exit 1
457       
[5973412]458        echo "#define WITH_LDAP 1" >> config.h
[b3c467b]459        STORAGES="$STORAGES ldap"
[b7d3cc34]460fi
461
[b3c467b]462for i in $STORAGES; do
463        STORAGE_OBJS="$STORAGE_OBJS storage_$i.o"
464done
465echo "STORAGE_OBJS="$STORAGE_OBJS >> Makefile.settings
466
[b7d3cc34]467if [ "$strip" = 0 ]; then
468        echo "STRIP=\# skip strip" >> Makefile.settings;
469else
470        if [ "$debug" = 1 ]; then
471                echo
472                echo 'Stripping binaries does not make sense when debugging. Stripping disabled.'
473                echo 'STRIP=\# skip strip' >> Makefile.settings
474                strip=0;
475        elif [ -n "$STRIP" ]; then
476                echo "STRIP=$STRIP" >> Makefile.settings;
477        elif type strip > /dev/null 2> /dev/null; then
478                echo "STRIP=strip" >> Makefile.settings;
479        else
480                echo
481                echo 'No strip utility found, cannot remove unnecessary parts from executable.'
482                echo 'STRIP=\# skip strip' >> Makefile.settings
483                strip=0;
484        fi;
485fi
486
[66b9e86e]487if [ "$gcov" = "1" ]; then
[31fc3970]488        echo "CFLAGS+=--coverage" >> Makefile.settings
489        echo "EFLAGS+=--coverage" >> Makefile.settings
[66b9e86e]490fi
491
[2abfbc5]492if [ "$plugins" = 0 ]; then
493        echo '#undef WITH_PLUGINS' >> config.h
494else
495        echo '#define WITH_PLUGINS' >> config.h
496fi
497
[6738a67]498otrprefix=""
499for i in / /usr /usr/local; do
500        if [ -f ${i}/lib/libotr.a ]; then
501                otrprefix=${i}
502                break
503        fi
504done
[764c7d1]505if [ "$otr" = "auto" ]; then
[6738a67]506        if [ -n "$otrprefix" ]; then
507                otr=1
508        else
509                otr=0
510        fi
[764c7d1]511fi
[6738a67]512if [ "$otr" = 1 ]; then
[858ea01]513        # BI == built-in
514        echo '#define OTR_BI' >> config.h
[6738a67]515        echo "EFLAGS+=-L${otrprefix}/lib -lotr" >> Makefile.settings
516        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
[858ea01]517        echo 'OTR_BI=otr.o' >> Makefile.settings
518elif [ "$otr" = "plugin" ]; then
519        echo '#define OTR_PI' >> config.h
520        echo "OTRFLAGS=-L${otrprefix}/lib -lotr" >> Makefile.settings
521        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
522        echo 'OTR_PI=otr.so' >> Makefile.settings
[764c7d1]523fi
524
[ceebeb1]525if [ ! -e doc/user-guide/help.txt ] && ! type xmlto > /dev/null 2> /dev/null; then
526        echo
527        echo 'WARNING: Building from an unreleased source tree without prebuilt helpfile.'
528        echo 'Install xmlto if you want online help to work.'
529fi
530
[ffea9b9]531echo
[a014331]532if [ -z "$BITLBEE_VERSION" -a -d .bzr ] && type bzr > /dev/null 2> /dev/null; then
533        nick=`bzr nick`
534        if [ -n "$nick" -a "$nick" != "bitlbee" ]; then
535                nick="-$nick"
536        else
537                nick=""
538        fi
[ffea9b9]539        rev=`bzr revno`
540        echo 'Using bzr revision #'$rev' as version number'
[a014331]541        BITLBEE_VERSION=\"bzr$nick-$rev\"
[b7d3cc34]542fi
543
544if [ -n "$BITLBEE_VERSION" ]; then
545        echo 'Spoofing version number: '$BITLBEE_VERSION
546        echo '#undef BITLBEE_VERSION' >> config.h
[ffea9b9]547        echo '#define BITLBEE_VERSION '$BITLBEE_VERSION >> config.h
548        echo
[b7d3cc34]549fi
550
[4fca1db]551if ! make helloworld > /dev/null 2>&1; then
552        echo "WARNING: Your version of make (BSD make?) does not support BitlBee's makefiles."
553        echo "BitlBee needs GNU make to build properly. On most systems GNU make is available"
554        echo "under the name 'gmake'."
555        echo
556        if gmake helloworld > /dev/null 2>&1; then
557                echo "gmake seems to be available on your machine, great."
558                echo
559        else
560                echo "gmake is not installed (or not working). Please try to install it."
561                echo
562        fi
563fi
564
[e506d6c]565cat <<EOF>bitlbee.pc
566prefix=$prefix
567includedir=$includedir
568
569Name: bitlbee
570Description: IRC to IM gateway
571Requires: glib-2.0
572Version: $BITLBEE_VERSION
573Libs:
574Cflags: -I\${includedir}
575
576EOF
577
[b7d3cc34]578protocols=''
579protoobjs=''
580
[e248c7f]581if [ "$purple" = 0 ]; then
582        echo '#undef WITH_PURPLE' >> config.h
583else
[e08e53c]584        if ! $PKG_CONFIG purple; then
585                echo
586                echo 'Cannot find libpurple development libraries, aborting. (Install libpurple-dev?)'
587                exit 1
588        fi
[e248c7f]589        echo '#define WITH_PURPLE' >> config.h
[e08e53c]590        cat<<EOF>>Makefile.settings
591EFLAGS += $($PKG_CONFIG purple --libs)
592PURPLE_CFLAGS += $($PKG_CONFIG purple --cflags)
593EOF
[e248c7f]594        protocols=$protocols'purple '
595        protoobjs=$protoobjs'purple_mod.o '
596
597        # Having both libpurple and native IM modules in one binary may
598        # do strange things. Let's not do that.
599        msn=0
600        jabber=0
601        oscar=0
602        yahoo=0
[bda2975]603       
604        if [ "$events" = "libevent" ]; then
605                echo 'Warning: Some libpurple modules (including msn-pecan) do their event handling'
606                echo 'outside libpurple, talking to GLib directly. At least for now the combination'
607                echo 'libpurple + libevent is *not* recommended!'
[c775a58]608                echo
[bda2975]609        fi
[e248c7f]610fi
611
[b0a89cc]612case "$CC" in
613*gcc* )
614        echo CFLAGS+=-MD -MF .depend/\$@.d >> Makefile.settings
615        for i in . lib protocols protocols/*/; do
616                mkdir -p $i/.depend
617        done
618esac
619
[b7d3cc34]620if [ "$msn" = 0 ]; then
621        echo '#undef WITH_MSN' >> config.h
622else
623        echo '#define WITH_MSN' >> config.h
624        protocols=$protocols'msn '
[b5a22e3]625        protoobjs=$protoobjs'msn_mod.o '
[b7d3cc34]626fi
627
628if [ "$jabber" = 0 ]; then
629        echo '#undef WITH_JABBER' >> config.h
630else
631        echo '#define WITH_JABBER' >> config.h
632        protocols=$protocols'jabber '
[b5a22e3]633        protoobjs=$protoobjs'jabber_mod.o '
[b7d3cc34]634fi
635
636if [ "$oscar" = 0 ]; then
637        echo '#undef WITH_OSCAR' >> config.h
638else
639        echo '#define WITH_OSCAR' >> config.h
640        protocols=$protocols'oscar '
[b5a22e3]641        protoobjs=$protoobjs'oscar_mod.o '
[b7d3cc34]642fi
643
644if [ "$yahoo" = 0 ]; then
645        echo '#undef WITH_YAHOO' >> config.h
646else
647        echo '#define WITH_YAHOO' >> config.h
648        protocols=$protocols'yahoo '
[b5a22e3]649        protoobjs=$protoobjs'yahoo_mod.o '
[b7d3cc34]650fi
651
[1b221e0]652if [ "$twitter" = 0 ]; then
653        echo '#undef WITH_TWITTER' >> config.h
654else
655        echo '#define WITH_TWITTER' >> config.h
656        protocols=$protocols'twitter '
657        protoobjs=$protoobjs'twitter_mod.o '
658fi
659
[b7d3cc34]660if [ "$protocols" = "PROTOCOLS = " ]; then
[43462708]661        echo "Warning: You haven't selected any communication protocol to compile!"
[b3c467b]662        echo "         BitlBee will run, but you will be unable to connect to IM servers!"
[b7d3cc34]663fi
664
665echo "PROTOCOLS = $protocols" >> Makefile.settings
666echo "PROTOOBJS = $protoobjs" >> Makefile.settings
667
668echo Architecture: $arch
669case "$arch" in
670Linux )
671;;
672GNU/* )
673;;
674*BSD )
675;;
676Darwin )
[caceb06]677        echo 'STRIP=\# skip strip' >> Makefile.settings
[b7d3cc34]678;;
679IRIX )
680;;
681SunOS )
682        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
683        echo 'STRIP=\# skip strip' >> Makefile.settings
[70d7795]684        echo '#define NO_FD_PASSING' >> config.h
[b7d3cc34]685;;
[8de63c3]686AIX )
687        echo 'EFLAGS+=-Wl,-brtl' >> Makefile.settings
[b7d3cc34]688;;
689CYGWIN* )
690        echo 'Cygwin is not officially supported.'
691;;
[aec56b0]692Windows )
693;;
[b7d3cc34]694* )
[8d6c4b1]695        echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
696        echo 'Please report any problems at http://bugs.bitlbee.org/.'
[b7d3cc34]697;;
698esac
699
[f1e7407]700if [ -n "$target" ]; then
701        echo "Cross-compiling for: $target"
702fi
703
[b7d3cc34]704echo
705echo 'Configuration done:'
706
707if [ "$debug" = "1" ]; then
[b3c467b]708        echo '  Debugging enabled.'
[b7d3cc34]709else
[b3c467b]710        echo '  Debugging disabled.'
[b7d3cc34]711fi
712
713if [ "$strip" = "1" ]; then
[b3c467b]714        echo '  Binary stripping enabled.'
[b7d3cc34]715else
[b3c467b]716        echo '  Binary stripping disabled.'
[b7d3cc34]717fi
718
[764c7d1]719if [ "$otr" = "1" ]; then
720        echo '  Off-the-Record (OTR) Messaging enabled.'
[858ea01]721elif [ "$otr" = "plugin" ]; then
722        echo '  Off-the-Record (OTR) Messaging enabled (as a plugin).'
[764c7d1]723else
724        echo '  Off-the-Record (OTR) Messaging disabled.'
725fi
726
[b3c467b]727echo '  Using event handler: '$events
728echo '  Using SSL library: '$ssl
729echo '  Building with these storage backends: '$STORAGES
[b7d3cc34]730
731if [ -n "$protocols" ]; then
[b3c467b]732        echo '  Building with these protocols:' $protocols
[b7d3cc34]733else
[b3c467b]734        echo '  Building without IM-protocol support. We wish you a lot of fun...'
[b7d3cc34]735fi
Note: See TracBrowser for help on using the repository browser.