source: configure @ 1074806

Last change on this file since 1074806 was 1074806, checked in by Wilmer van der Gaast <wilmer@…>, at 2010-11-20T15:18:55Z

Fixed out-of-directory build support to not get confused by Eclipse. #713

  • 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
[a348d00]603        twitter=0
[bda2975]604       
605        if [ "$events" = "libevent" ]; then
606                echo
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!'
610        fi
[e248c7f]611fi
612
[b0a89cc]613case "$CC" in
614*gcc* )
615        echo CFLAGS+=-MD -MF .depend/\$@.d >> Makefile.settings
616        for i in . lib protocols protocols/*/; do
617                mkdir -p $i/.depend
618        done
619esac
620
[b7d3cc34]621if [ "$msn" = 0 ]; then
622        echo '#undef WITH_MSN' >> config.h
623else
624        echo '#define WITH_MSN' >> config.h
625        protocols=$protocols'msn '
[b5a22e3]626        protoobjs=$protoobjs'msn_mod.o '
[b7d3cc34]627fi
628
629if [ "$jabber" = 0 ]; then
630        echo '#undef WITH_JABBER' >> config.h
631else
632        echo '#define WITH_JABBER' >> config.h
633        protocols=$protocols'jabber '
[b5a22e3]634        protoobjs=$protoobjs'jabber_mod.o '
[b7d3cc34]635fi
636
637if [ "$oscar" = 0 ]; then
638        echo '#undef WITH_OSCAR' >> config.h
639else
640        echo '#define WITH_OSCAR' >> config.h
641        protocols=$protocols'oscar '
[b5a22e3]642        protoobjs=$protoobjs'oscar_mod.o '
[b7d3cc34]643fi
644
645if [ "$yahoo" = 0 ]; then
646        echo '#undef WITH_YAHOO' >> config.h
647else
648        echo '#define WITH_YAHOO' >> config.h
649        protocols=$protocols'yahoo '
[b5a22e3]650        protoobjs=$protoobjs'yahoo_mod.o '
[b7d3cc34]651fi
652
[1b221e0]653if [ "$twitter" = 0 ]; then
654        echo '#undef WITH_TWITTER' >> config.h
655else
656        echo '#define WITH_TWITTER' >> config.h
657        protocols=$protocols'twitter '
658        protoobjs=$protoobjs'twitter_mod.o '
659fi
660
[b7d3cc34]661if [ "$protocols" = "PROTOCOLS = " ]; then
[43462708]662        echo "Warning: You haven't selected any communication protocol to compile!"
[b3c467b]663        echo "         BitlBee will run, but you will be unable to connect to IM servers!"
[b7d3cc34]664fi
665
666echo "PROTOCOLS = $protocols" >> Makefile.settings
667echo "PROTOOBJS = $protoobjs" >> Makefile.settings
668
669echo Architecture: $arch
670case "$arch" in
671Linux )
672;;
673GNU/* )
674;;
675*BSD )
676;;
677Darwin )
[caceb06]678        echo 'STRIP=\# skip strip' >> Makefile.settings
[b7d3cc34]679;;
680IRIX )
681;;
682SunOS )
683        echo 'EFLAGS+=-lresolv -lnsl -lsocket' >> Makefile.settings
684        echo 'STRIP=\# skip strip' >> Makefile.settings
[70d7795]685        echo '#define NO_FD_PASSING' >> config.h
[b7d3cc34]686;;
[8de63c3]687AIX )
688        echo 'EFLAGS+=-Wl,-brtl' >> Makefile.settings
[b7d3cc34]689;;
690CYGWIN* )
691        echo 'Cygwin is not officially supported.'
692;;
[aec56b0]693Windows )
694;;
[b7d3cc34]695* )
[8d6c4b1]696        echo 'We haven'\''t tested BitlBee on many platforms yet, yours is untested. YMMV.'
697        echo 'Please report any problems at http://bugs.bitlbee.org/.'
[b7d3cc34]698;;
699esac
700
[f1e7407]701if [ -n "$target" ]; then
702        echo "Cross-compiling for: $target"
703fi
704
[b7d3cc34]705echo
706echo 'Configuration done:'
707
708if [ "$debug" = "1" ]; then
[b3c467b]709        echo '  Debugging enabled.'
[b7d3cc34]710else
[b3c467b]711        echo '  Debugging disabled.'
[b7d3cc34]712fi
713
714if [ "$strip" = "1" ]; then
[b3c467b]715        echo '  Binary stripping enabled.'
[b7d3cc34]716else
[b3c467b]717        echo '  Binary stripping disabled.'
[b7d3cc34]718fi
719
[764c7d1]720if [ "$otr" = "1" ]; then
721        echo '  Off-the-Record (OTR) Messaging enabled.'
[858ea01]722elif [ "$otr" = "plugin" ]; then
723        echo '  Off-the-Record (OTR) Messaging enabled (as a plugin).'
[764c7d1]724else
725        echo '  Off-the-Record (OTR) Messaging disabled.'
726fi
727
[b3c467b]728echo '  Using event handler: '$events
729echo '  Using SSL library: '$ssl
730echo '  Building with these storage backends: '$STORAGES
[b7d3cc34]731
732if [ -n "$protocols" ]; then
[b3c467b]733        echo '  Building with these protocols:' $protocols
[b7d3cc34]734else
[b3c467b]735        echo '  Building without IM-protocol support. We wish you a lot of fun...'
[b7d3cc34]736fi
Note: See TracBrowser for help on using the repository browser.