source: configure @ f68fd5f

3.0.2
Last change on this file since f68fd5f was 4e3df8a, checked in by Wilmer van der Gaast <wilmer@…>, at 2011-02-24T18:50:18Z

More discouraging words on libpurple. Too many people seem to be using it
with no good reason.

  • Property mode set to 100755
File size: 18.1 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
[c5920df]368                # Disable NSS for now as it's known to not work very well ATM.
369                #detect_nss
[191cfb1]370                :
[b7d3cc34]371        fi
[b3c467b]372elif [ "$ssl" = "gnutls" ]; then
373        detect_gnutls
374elif [ "$ssl" = "nss" ]; then
375        detect_nss
[85d7b85]376elif [ "$ssl" = "sspi" ]; then
377        echo
[b3c467b]378elif [ "$ssl" = "openssl" ]; then
379        echo
380        echo 'No detection code exists for OpenSSL. Make sure that you have a complete'
381        echo 'install of OpenSSL (including devel/header files) before reporting'
382        echo 'compilation problems.'
383        echo
384        echo 'Also, keep in mind that the OpenSSL is, according to some people, not'
385        echo 'completely GPL-compatible. Using GnuTLS or NSS is recommended and better'
386        echo 'supported by us. However, on many BSD machines, OpenSSL can be considered'
387        echo 'part of the operating system, which makes it GPL-compatible.'
388        echo
389        echo 'For more info, see: http://www.openssl.org/support/faq.html#LEGAL2'
390        echo '                    http://www.gnome.org/~markmc/openssl-and-the-gpl.html'
391        echo
392        echo 'Please note that distributing a BitlBee binary which links to OpenSSL is'
393        echo 'probably illegal. If you want to create and distribute a binary BitlBee'
394        echo 'package, you really should use GnuTLS or NSS instead.'
395        echo
396        echo 'Also, the OpenSSL license requires us to say this:'
397        echo ' *    "This product includes software developed by the OpenSSL Project'
398        echo ' *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"'
[b7d3cc34]399       
[b3c467b]400        echo 'EFLAGS+=-lssl -lcrypto' >> Makefile.settings
401       
402        ret=1
403elif [ "$ssl" = "bogus" ]; then
404        echo
[670204f]405        echo 'Using bogus SSL code. This means some features will not work properly.'
[b3c467b]406       
407        ## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
[1c2eaa3]408        if [ "$msn" = "1" -o "$yahoo" = "1" ]; then
[b7d3cc34]409                echo
[1c2eaa3]410                echo 'WARNING: The MSN and Yahoo! modules will not work without SSL. Disabling.'
[b3c467b]411                msn=0
[1c2eaa3]412                yahoo=0
[b3c467b]413        fi
[b7d3cc34]414       
[b3c467b]415        ret=1
416else
417        echo
418        echo 'ERROR: Unknown SSL library specified.'
419        exit 1
[b7d3cc34]420fi
421
[b3c467b]422if [ "$ret" = "0" ]; then
423        echo
424        echo 'ERROR: Could not find a suitable SSL library (GnuTLS, libnss or OpenSSL).'
425        echo '       Please note that this script doesn'\''t have detection code for OpenSSL,'
426        echo '       so if you want to use that, you have to select it by hand. If you don'\''t'
427        echo '       need SSL support, you can select the "bogus" SSL library. (--ssl=bogus)'
[b7d3cc34]428       
[b3c467b]429        exit 1
430fi;
431
[83e47ec]432if [ "$msn" = "1" -a "$ssl" != "openssl" -a "$ssl" != "gnutls" ]; then
[a366cca]433        # Needed for MSN only. OpenSSL exports nice cipher functions already,
[83e47ec]434        # in case of GnuTLS we should be able to use gcrypt. Otherwise, use
435        # built-in stuff. (Since right now those are the only two supported
436        # SSL modules anyway, this is mostly unnecessary.)
[a366cca]437        echo 'DES=des.o' >> Makefile.settings
438fi
439
[b3c467b]440echo 'SSL_CLIENT=ssl_'$ssl'.o' >> Makefile.settings
441
[36cf9fd]442if detect_resolv_dynamic || detect_resolv_static; then
443        echo '#define HAVE_RESOLV_A' >> config.h
444fi
[36e9f62]445
[ba7d16f]446STORAGES="xml"
[b3c467b]447
[f32d557]448if [ "$ldap" = "auto" ]; then
449        detect_ldap
[b7d3cc34]450fi
451
[f32d557]452if [ "$ldap" = 0 ]; then
[5973412]453        echo "#undef WITH_LDAP" >> config.h
[f32d557]454elif [ "$ldap" = 1 ]; then
[5c5a586]455        echo
456        echo 'LDAP support is a work in progress and does NOT work AT ALL right now.'
457        echo
458        exit 1
459       
[5973412]460        echo "#define WITH_LDAP 1" >> config.h
[b3c467b]461        STORAGES="$STORAGES ldap"
[b7d3cc34]462fi
463
[b3c467b]464for i in $STORAGES; do
465        STORAGE_OBJS="$STORAGE_OBJS storage_$i.o"
466done
467echo "STORAGE_OBJS="$STORAGE_OBJS >> Makefile.settings
468
[b7d3cc34]469if [ "$strip" = 0 ]; then
470        echo "STRIP=\# skip strip" >> Makefile.settings;
471else
472        if [ "$debug" = 1 ]; then
473                echo
474                echo 'Stripping binaries does not make sense when debugging. Stripping disabled.'
475                echo 'STRIP=\# skip strip' >> Makefile.settings
476                strip=0;
477        elif [ -n "$STRIP" ]; then
478                echo "STRIP=$STRIP" >> Makefile.settings;
479        elif type strip > /dev/null 2> /dev/null; then
480                echo "STRIP=strip" >> Makefile.settings;
481        else
482                echo
483                echo 'No strip utility found, cannot remove unnecessary parts from executable.'
484                echo 'STRIP=\# skip strip' >> Makefile.settings
485                strip=0;
486        fi;
487fi
488
[66b9e86e]489if [ "$gcov" = "1" ]; then
[31fc3970]490        echo "CFLAGS+=--coverage" >> Makefile.settings
491        echo "EFLAGS+=--coverage" >> Makefile.settings
[66b9e86e]492fi
493
[2abfbc5]494if [ "$plugins" = 0 ]; then
495        echo '#undef WITH_PLUGINS' >> config.h
496else
497        echo '#define WITH_PLUGINS' >> config.h
498fi
499
[6738a67]500otrprefix=""
501for i in / /usr /usr/local; do
502        if [ -f ${i}/lib/libotr.a ]; then
503                otrprefix=${i}
504                break
505        fi
506done
[764c7d1]507if [ "$otr" = "auto" ]; then
[6738a67]508        if [ -n "$otrprefix" ]; then
509                otr=1
510        else
511                otr=0
512        fi
[764c7d1]513fi
[6738a67]514if [ "$otr" = 1 ]; then
[858ea01]515        # BI == built-in
516        echo '#define OTR_BI' >> config.h
[6738a67]517        echo "EFLAGS+=-L${otrprefix}/lib -lotr" >> Makefile.settings
518        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
[858ea01]519        echo 'OTR_BI=otr.o' >> Makefile.settings
520elif [ "$otr" = "plugin" ]; then
521        echo '#define OTR_PI' >> config.h
522        echo "OTRFLAGS=-L${otrprefix}/lib -lotr" >> Makefile.settings
523        echo "CFLAGS+=-I${otrprefix}/include" >> Makefile.settings
524        echo 'OTR_PI=otr.so' >> Makefile.settings
[764c7d1]525fi
526
[ceebeb1]527if [ ! -e doc/user-guide/help.txt ] && ! type xmlto > /dev/null 2> /dev/null; then
528        echo
529        echo 'WARNING: Building from an unreleased source tree without prebuilt helpfile.'
530        echo 'Install xmlto if you want online help to work.'
531fi
532
[ffea9b9]533echo
[a014331]534if [ -z "$BITLBEE_VERSION" -a -d .bzr ] && type bzr > /dev/null 2> /dev/null; then
535        nick=`bzr nick`
536        if [ -n "$nick" -a "$nick" != "bitlbee" ]; then
537                nick="-$nick"
538        else
539                nick=""
540        fi
[ffea9b9]541        rev=`bzr revno`
542        echo 'Using bzr revision #'$rev' as version number'
[a014331]543        BITLBEE_VERSION=\"bzr$nick-$rev\"
[b7d3cc34]544fi
545
546if [ -n "$BITLBEE_VERSION" ]; then
547        echo 'Spoofing version number: '$BITLBEE_VERSION
548        echo '#undef BITLBEE_VERSION' >> config.h
[ffea9b9]549        echo '#define BITLBEE_VERSION '$BITLBEE_VERSION >> config.h
550        echo
[b7d3cc34]551fi
552
[4fca1db]553if ! make helloworld > /dev/null 2>&1; then
554        echo "WARNING: Your version of make (BSD make?) does not support BitlBee's makefiles."
555        echo "BitlBee needs GNU make to build properly. On most systems GNU make is available"
556        echo "under the name 'gmake'."
557        echo
558        if gmake helloworld > /dev/null 2>&1; then
559                echo "gmake seems to be available on your machine, great."
560                echo
561        else
562                echo "gmake is not installed (or not working). Please try to install it."
563                echo
564        fi
565fi
566
[e506d6c]567cat <<EOF>bitlbee.pc
568prefix=$prefix
569includedir=$includedir
570
571Name: bitlbee
572Description: IRC to IM gateway
573Requires: glib-2.0
574Version: $BITLBEE_VERSION
575Libs:
576Cflags: -I\${includedir}
577
578EOF
579
[b7d3cc34]580protocols=''
581protoobjs=''
582
[e248c7f]583if [ "$purple" = 0 ]; then
584        echo '#undef WITH_PURPLE' >> config.h
585else
[e08e53c]586        if ! $PKG_CONFIG purple; then
587                echo
588                echo 'Cannot find libpurple development libraries, aborting. (Install libpurple-dev?)'
589                exit 1
590        fi
[e248c7f]591        echo '#define WITH_PURPLE' >> config.h
[e08e53c]592        cat<<EOF>>Makefile.settings
593EFLAGS += $($PKG_CONFIG purple --libs)
594PURPLE_CFLAGS += $($PKG_CONFIG purple --cflags)
595EOF
[e248c7f]596        protocols=$protocols'purple '
597        protoobjs=$protoobjs'purple_mod.o '
598
599        # Having both libpurple and native IM modules in one binary may
600        # do strange things. Let's not do that.
601        msn=0
602        jabber=0
603        oscar=0
604        yahoo=0
[bda2975]605       
606        if [ "$events" = "libevent" ]; then
607                echo 'Warning: Some libpurple modules (including msn-pecan) do their event handling'
608                echo 'outside libpurple, talking to GLib directly. At least for now the combination'
609                echo 'libpurple + libevent is *not* recommended!'
[c775a58]610                echo
[bda2975]611        fi
[e248c7f]612fi
613
[b0a89cc]614case "$CC" in
615*gcc* )
616        echo CFLAGS+=-MD -MF .depend/\$@.d >> Makefile.settings
617        for i in . lib protocols protocols/*/; do
618                mkdir -p $i/.depend
619        done
620esac
621
[b7d3cc34]622if [ "$msn" = 0 ]; then
623        echo '#undef WITH_MSN' >> config.h
624else
625        echo '#define WITH_MSN' >> config.h
626        protocols=$protocols'msn '
[b5a22e3]627        protoobjs=$protoobjs'msn_mod.o '
[b7d3cc34]628fi
629
630if [ "$jabber" = 0 ]; then
631        echo '#undef WITH_JABBER' >> config.h
632else
633        echo '#define WITH_JABBER' >> config.h
634        protocols=$protocols'jabber '
[b5a22e3]635        protoobjs=$protoobjs'jabber_mod.o '
[b7d3cc34]636fi
637
638if [ "$oscar" = 0 ]; then
639        echo '#undef WITH_OSCAR' >> config.h
640else
641        echo '#define WITH_OSCAR' >> config.h
642        protocols=$protocols'oscar '
[b5a22e3]643        protoobjs=$protoobjs'oscar_mod.o '
[b7d3cc34]644fi
645
646if [ "$yahoo" = 0 ]; then
647        echo '#undef WITH_YAHOO' >> config.h
648else
649        echo '#define WITH_YAHOO' >> config.h
650        protocols=$protocols'yahoo '
[b5a22e3]651        protoobjs=$protoobjs'yahoo_mod.o '
[b7d3cc34]652fi
653
[1b221e0]654if [ "$twitter" = 0 ]; then
655        echo '#undef WITH_TWITTER' >> config.h
656else
657        echo '#define WITH_TWITTER' >> config.h
658        protocols=$protocols'twitter '
659        protoobjs=$protoobjs'twitter_mod.o '
660fi
661
[b7d3cc34]662if [ "$protocols" = "PROTOCOLS = " ]; then
[43462708]663        echo "Warning: You haven't selected any communication protocol to compile!"
[b3c467b]664        echo "         BitlBee will run, but you will be unable to connect to IM servers!"
[b7d3cc34]665fi
666
667echo "PROTOCOLS = $protocols" >> Makefile.settings
668echo "PROTOOBJS = $protoobjs" >> Makefile.settings
669
670echo Architecture: $arch
671case "$arch" in
672Linux )
673;;
674GNU/* )
675;;
676*BSD )
677;;
678Darwin )
[caceb06]679        echo 'STRIP=\# skip strip' >> Makefile.settings
[b7d3cc34]680;;
681IRIX )
682;;
683SunOS )
684        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
685        echo 'STRIP=\# skip strip' >> Makefile.settings
[70d7795]686        echo '#define NO_FD_PASSING' >> config.h
[b7d3cc34]687;;
[8de63c3]688AIX )
689        echo 'EFLAGS+=-Wl,-brtl' >> Makefile.settings
[b7d3cc34]690;;
691CYGWIN* )
692        echo 'Cygwin is not officially supported.'
693;;
[aec56b0]694Windows )
695;;
[b7d3cc34]696* )
[8d6c4b1]697        echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
698        echo 'Please report any problems at http://bugs.bitlbee.org/.'
[b7d3cc34]699;;
700esac
701
[f1e7407]702if [ -n "$target" ]; then
703        echo "Cross-compiling for: $target"
704fi
705
[b7d3cc34]706echo
707echo 'Configuration done:'
708
709if [ "$debug" = "1" ]; then
[b3c467b]710        echo '  Debugging enabled.'
[b7d3cc34]711else
[b3c467b]712        echo '  Debugging disabled.'
[b7d3cc34]713fi
714
715if [ "$strip" = "1" ]; then
[b3c467b]716        echo '  Binary stripping enabled.'
[b7d3cc34]717else
[b3c467b]718        echo '  Binary stripping disabled.'
[b7d3cc34]719fi
720
[764c7d1]721if [ "$otr" = "1" ]; then
722        echo '  Off-the-Record (OTR) Messaging enabled.'
[858ea01]723elif [ "$otr" = "plugin" ]; then
724        echo '  Off-the-Record (OTR) Messaging enabled (as a plugin).'
[764c7d1]725else
726        echo '  Off-the-Record (OTR) Messaging disabled.'
727fi
728
[b3c467b]729echo '  Using event handler: '$events
730echo '  Using SSL library: '$ssl
[4e3df8a]731#echo '  Building with these storage backends: '$STORAGES
[b7d3cc34]732
733if [ -n "$protocols" ]; then
[b3c467b]734        echo '  Building with these protocols:' $protocols
[4e3df8a]735        case "$protocols" in
736        *purple*)
737                echo "    Note that BitlBee-libpurple is supported on a best-effort basis. It's"
738                echo "    not *fully* compatible with normal BitlBee. Don't use it unless you"
739                echo "    absolutely need it (i.e. support for a certain protocol or feature)."
740        esac
[b7d3cc34]741else
[b3c467b]742        echo '  Building without IM-protocol support. We wish you a lot of fun...'
[b7d3cc34]743fi
Note: See TracBrowser for help on using the repository browser.