source: configure @ 27b407f

Last change on this file since 27b407f was 04f0c10, checked in by Wilmer van der Gaast <wilmer@…>, at 2010-10-03T02:50:20Z

At least for now, only enable OTR if the user specifically asks for it.
Distros can now ship a bitlbee-plugin-otr package (that should work with
both bitlbee and bitlbee-libpurple).

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