source: configure @ 04e2a05

Last change on this file since 04e2a05 was 04e2a05, checked in by dequis <dx@…>, at 2014-06-26T08:07:11Z

configure: Let the user enable both built-in protocols and purple

There's no real risk in enabling these, since protocols/purple/purple.c
already avoids adding duplicate protocols in purple_initmodule():

/* If we already have this one (as a native module), don't

add a libpurple duplicate. */

if( find_protocol( prot->info->id ) )

continue;

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