source: configure @ a8aa823

Last change on this file since a8aa823 was a8aa823, checked in by Wilmer van der Gaast <wilmer@…>, at 2013-12-07T12:49:28Z

Ugly: Bogus dependency on libotr2-dev, but adding a warning to the configure
script that this actually won't work.

This because I can't figure out how to make a source dependency conditional
on whether a certain binary packages is going to be built. It's kind of okay
since libotr2-dev is unavailable on new systems anyway.

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